Domande taggate «liskov-substitution»

Per domande sul principio di sostituzione di Liskov nella progettazione orientata agli oggetti.




14
Esiste un linguaggio o un modello di progettazione che consenta la * rimozione * del comportamento o delle proprietà degli oggetti in una gerarchia di classi?
Un noto difetto delle gerarchie di classi tradizionali è che sono cattive quando si tratta di modellare il mondo reale. Ad esempio, cercando di rappresentare le specie animali con classi. In realtà ci sono diversi problemi nel farlo, ma uno a cui non ho mai visto una soluzione è quando …


5
I casi speciali con fallback violano il principio di sostituzione di Liskov?
Diciamo che ho un'interfaccia FooInterfaceche ha la seguente firma: interface FooInterface { public function doSomething(SomethingInterface something); } E una classe concreta ConcreteFooche implementa tale interfaccia: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Vorrei ConcreteFoo::doSomething()fare qualcosa di unico se viene passato un tipo speciale di SomethingInterfaceoggetto …

3
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: I requisiti sono rafforzati, o Le post-condizioni sono indebolite Ma non riesco ancora a capire come questi due punti violerebbero il principio di sostituzione di Liskov. Qualcuno può spiegare con un esempio. In particolare, come una delle condizioni …




2
Mondo reale - Principio di sostituzione di Liskov
Contesto: sto sviluppando un framework di messaggistica. Questo quadro consentirà: invio di messaggi tramite un bus di servizio iscriversi alle code sul bus dei messaggi sottoscrivendo argomenti su un bus messaggi Attualmente stiamo usando RabbitMQ, ma so che passeremo al Microsoft Service Bus (on Premise) nel prossimo futuro. Ho intenzione …


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 …



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.