Domande taggate «inheritance»

L'ereditarietà è un modo per riutilizzare il codice di oggetti esistenti o per stabilire un sottotipo da un oggetto esistente o entrambi, a seconda del supporto del linguaggio di programmazione.

4
Ereditarietà vs mixin in linguaggi dinamici?
Quando dovresti preferire i modelli ereditari rispetto ai mixin in linguaggi dinamici? Per mixin, intendo il vero e proprio mixaggio, come nell'inserimento di funzioni e membri di dati in un oggetto in fase di esecuzione. Quando useresti, ad esempio, l'eredità prototipale anziché i mixin? Per illustrare più chiaramente cosa intendo …

1
Perché (/ ha) Bertrand Meyer pensa che la sottoclasse sia l'unico modo per estendere un modulo "chiuso"?
In Meyer Object-Oriented Software Construction (1988) definisce il principio aperto / chiuso come segue: Si dirà che un modulo sarà aperto se è ancora disponibile per l'estensione. Ad esempio, dovrebbe essere possibile aggiungere campi alle strutture dati che contiene o nuovi elementi all'insieme di funzioni che esegue. Si dirà che …


5
Quando utilizzare l'ereditarietà, quando utilizzare "solo un campo booleano"?
Nella nostra applicazione Rails, stiamo aggiungendo notifiche. Alcuni di questi sono blocking: arrestano l'avanzamento di qualunque risorsa vengano aggiunti, poiché mancano alcune informazioni su quella risorsa. Altre notifiche sono semplici notifiche e forniscono solo informazioni. Oggi ho avuto una discussione con un altro programmatore nel nostro team. Ho creato la …




1
Come verificare il principio di sostituzione di Liskov in una gerarchia ereditaria?
Ispirato da questa risposta: Liskov principio di sostituzione richiede che Le condizioni preliminari non possono essere rafforzate in un sottotipo. Le postcondizioni non possono essere indebolite in un sottotipo. Gli invarianti del supertipo devono essere conservati in un sottotipo. Vincolo storico (la "regola della storia"). Gli oggetti sono considerati modificabili …


8
"Preferisci la composizione rispetto all'eredità": l'unica ragione per difendersi dalle modifiche alla firma?
Questa pagina sostiene la composizione sull'eredità con il seguente argomento (riformulato nelle mie parole): Una modifica della firma di un metodo della superclasse (che non è stata ignorata nella sottoclasse) provoca ulteriori modifiche in molti punti quando utilizziamo Eredità. Tuttavia, quando usiamo Composizione, la modifica aggiuntiva richiesta è solo in …


3
Composizione su eredità ma
Sto cercando di insegnare a me stesso l'ingegneria del software e trovo alcune informazioni contrastanti che mi confondono. Ho imparato OOP e quali sono le classi / interfacce astratte e come usarle, ma poi sto leggendo che si dovrebbe "favorire la composizione sull'eredità". Capisco la composizione quando una classe compone …

2
Perché la classe base deve avere un distruttore virtuale qui se la classe derivata non alloca memoria dinamica grezza?
Il codice seguente provoca una perdita di memoria: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i < …

5
Ereditarietà vs proprietà aggiuntiva con valore null
Per le classi con campi opzionali, è meglio usare l'ereditarietà o una proprietà nullable? Considera questo esempio: class Book { private String name; } class BookWithColor extends Book { private String color; } o class Book { private String name; private String color; //when this is null then it is …
12 java  inheritance  class  null 


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.