Perguntas com a marcação «liskov-substitution»

Para perguntas sobre o princípio de substituição de Liskov em design orientado a objetos.






5
Casos especiais com fallbacks violam o Princípio de Substituição de Liskov?
Digamos que eu tenha uma interface FooInterfaceque tenha a seguinte assinatura: interface FooInterface { public function doSomething(SomethingInterface something); } E uma classe concreta ConcreteFooque implementa essa interface: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Eu gostaria ConcreteFoo::doSomething()de fazer algo único se ele passou por um …

3
Como o fortalecimento das pré-condições e o enfraquecimento das pós-condições violam o princípio da substituição de Liskov?
Eu li que o princípio de substituição de Liskov é violado se: As pré-condições são reforçadas, ou Pós-condições são enfraquecidas Mas ainda não entendi completamente como esses dois pontos violariam o princípio da substituição de Liskov. Alguém pode explicar com um exemplo. Especificamente, como qualquer uma das condições acima causaria …




2
Mundo Real - Princípio da Substituição de Liskov
Antecedentes: estou desenvolvendo uma estrutura de mensagens. Essa estrutura permitirá: envio de mensagens através de um barramento de serviço assinando filas no barramento de mensagens assinando tópicos em um barramento de mensagens Atualmente, estamos usando o RabbitMQ, mas sei que iremos mudar para o Microsoft Service Bus (no local) em …


1
Como verificar o princípio de substituição de Liskov em uma hierarquia de herança?
Inspirado por esta resposta: O princípio da substituição de Liskov exige que As pré-condições não podem ser reforçadas em um subtipo. As pós-condições não podem ser enfraquecidas em um subtipo. Invariantes do supertipo devem ser preservados em um subtipo. Restrição do histórico (a "regra do histórico"). Os objetos são considerados …



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.