Domande con tag 'liskov-substitution'

10
risposte

Si tratta di una violazione del principio di sostituzione di Liskov?

Supponiamo di avere un elenco di entità Task e un sottotipo ProjectTask . Le attività possono essere chiuse in qualsiasi momento, eccetto ProjectTasks che non può essere chiuso una volta che hanno lo stato di Iniziato. L'interfaccia ute...
posta 16.10.2012 - 22:36
9
risposte

Odore di codice: Abuso di ereditarietà [duplicato]

È stato generalmente accettato nella comunità OO che si dovrebbe "favorire la composizione sull'ereditarietà". D'altra parte, l'ereditarietà fornisce sia il polimorfismo sia un modo diretto e teso di delegare tutto a una classe di base, a meno...
posta 16.10.2010 - 19:27
14
risposte

Esiste un linguaggio o un modello di progettazione che consenta la * rimozione * del comportamento o delle proprietà di un oggetto in una gerarchia di classi?

Una ben nota lacuna delle gerarchie classiche di classe è che sono cattive quando si tratta di modellare il mondo reale. Ad esempio, cercando di rappresentare le specie di animali con le classi. Ci sono in realtà diversi problemi quando lo facci...
posta 15.11.2011 - 13:04
9
risposte

Cosa può andare storto se viene violato il principio di sostituzione di Liskov?

Stavo seguendo questa domanda altamente votata sulla possibile violazione del principio di sostituzione di Liskov. So qual è il principio di sostituzione di Liskov, ma quello che non è ancora chiaro nella mia mente è cosa potrebbe andare stort...
posta 17.10.2012 - 17:04
5
risposte

I casi speciali con fallback violano il Principio di sostituzione di Liskov?

Diciamo che ho un'interfaccia FooInterface che ha la seguente firma: interface FooInterface { public function doSomething(SomethingInterface something); } E una classe concreta ConcreteFoo che implementa tale interfaccia: cl...
posta 30.12.2015 - 11:11
3
risposte

In che modo il rafforzamento delle precondizioni e l'indebolimento delle postcondizioni violano il principio di sostituzione di Liskov?

Ho letto che il principio di sostituzione di Liskov è violato se: Le condizioni sono rafforzate o Le postcondizioni sono indebolite Ma non riesco ancora a capire in che modo questi due punti violerebbero il principio di sostituzio...
posta 19.02.2013 - 19:51
3
risposte

Esiste un nome specifico per il paradosso "Square inherits from Rectangle"?

Un certo fallimento di OOP è mostrato con una classe Square che eredita da Rectangle, dove logicamente Square è una specializzazione di Rectangle e dovrebbe quindi ereditarlo, ma tutto cade a pezzi quando si tenta di cambiare la lunghezza o la l...
posta 24.05.2013 - 19:20
1
risposta

Il principio di sostituzione di Liskov si applica anche alle classi che implementano un'interfaccia?

LSP afferma che le classi dovrebbero essere sostituibili per le loro classi di base, il che significa che le classi derivate e di base dovrebbero essere equivalenti semanticamente. Ma LSP si applica anche alle classi che implementano un'inter...
posta 22.10.2012 - 20:49
3
risposte

Il modello di stato viola il principio di sostituzione di Liskov?

Questa immagine è tratta da Applicazione di design e pattern basati sul dominio: con esempi in C # e .NET Questoèildiagrammadiclasseperil Pattern di stato dove un SalesOrder può avere stati diversi durante la sua vita. Sono consentit...
posta 08.01.2013 - 19:30
6
risposte

I cambiamenti nelle prestazioni violano il Principio di sostituzione di Liskov?

Dire che ho: interface Thing { GetThing(); } class FastThing : Thing { public int GetThing() { return 1; } } class SlowThing : Thing { public int GetThing() { return GetThingFromDatabase(); } }...
posta 10.02.2013 - 00:36