Supposons que nous ayons une liste d'entités de tâche et un ProjectTasksous-type. Les tâches peuvent être fermées à tout moment, à l'exception des tâches ProjectTasksqui ne peuvent pas être fermées une fois qu'elles ont le statut Lancé. L’interface utilisateur doit s’assurer que l’option de fermeture d’un espace ouvert ProjectTaskn’est jamais …
J'essaie de comprendre les principes SOLID de la programmation orientée objet et je suis parvenu à la conclusion que LSP et OCP présentaient certaines similitudes (sinon pour en dire plus). les états de principe ouvert / fermé "les entités logicielles (classes, modules, fonctions, etc.) devraient être ouvertes à extension, mais …
La réponse la mieux notée à cette question sur le principe de substitution de Liskov s'efforce de distinguer les termes sous - type et sous - classe . Cela montre également que certaines langues confondent les deux, alors que d'autres ne le font pas. Pour les langages orientés objet que …
Un inconvénient bien connu des hiérarchies de classes traditionnelles est qu'elles sont mauvaises en ce qui concerne la modélisation du monde réel. Par exemple, essayer de représenter les espèces animales avec des classes. Il y a en fait plusieurs problèmes en faisant cela, mais celui auquel je n'ai jamais vu …
Je suivais cette question très votée sur une possible violation du principe de substitution de Liskov. Je sais ce qu'est le principe de substitution de Liskov, mais ce qui n'est pas encore clair dans mon esprit, c'est ce qui pourrait mal tourner si, en tant que développeur, je ne pense …
Disons que j'ai une interface FooInterfacequi a la signature suivante: interface FooInterface { public function doSomething(SomethingInterface something); } Et une classe concrète ConcreteFooqui implémente cette interface: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } J'aimerais ConcreteFoo::doSomething()faire quelque chose d'unique s'il passe un type d' SomethingInterfaceobjet spécial …
J'ai lu que le principe de substitution de Liskov est violé si: Les conditions préalables sont renforcées, ou Les postconditions sont affaiblies Mais je ne sais pas encore comment ces deux points violeraient le principe de substitution de Liskov. Quelqu'un peut-il expliquer avec un exemple. Plus précisément, comment l'une des …
Un certain échec de la POO est montré avec une classe Square héritant de Rectangle, où Square est logiquement une spécialisation de Rectangle et devrait donc en hériter, mais tout s'effondre lorsque vous essayez de modifier la longueur ou la largeur d'un carré. Existe-t-il un terme spécifique pour décrire ce …
Cette image est tirée de l' application de modèles et de modèles pilotés par domaine: avec des exemples en C # et .NET Il s'agit du diagramme de classes du modèle d'état dans lequel un état SalesOrderpeut avoir différents états au cours de sa durée de vie. Seules certaines transitions …
LSP indique que les classes doivent être substituables à leurs classes de base, ce qui signifie que les classes dérivées et de base doivent être sémantiquement équivalentes. Mais LSP s'applique-t-il également aux classes implémentant une interface? En d'autres termes, si une méthode d'interface implémentée par une classe est sémantiquement différente …
Contexte: Je développe un cadre de messagerie. Ce cadre permettra: envoi de messages via un bus de service abonnement aux files d'attente sur le bus de messages abonnement à des sujets sur un bus de messages Nous utilisons actuellement RabbitMQ, mais je sais que nous allons passer à Microsoft Service …
Dis que j'ai: interface Thing { GetThing(); } class FastThing : Thing { public int GetThing() { return 1; } } class SlowThing : Thing { public int GetThing() { return GetThingFromDatabase(); } } Est-ce une violation du principe de substitution de Liskov?
Inspiré par cette réponse: Le principe de substitution de Liskov exige que Les conditions préalables ne peuvent pas être renforcées dans un sous-type. Les post-conditions ne peuvent pas être affaiblies dans un sous-type. Les invariants du supertype doivent être conservés dans un sous-type. Contrainte d'historique (la "règle d'historique"). Les objets …
Une classe LinkedList existe avec des fonctions telles que add_first (), add_last (), add_after (), remove_first (), remove_last () et remove () Il existe maintenant une classe Stack qui fournit des fonctionnalités telles que push (), pop (), peek () ou top (), et pour implémenter ces méthodes, elle étend …
La CircleprolongationEllipse rompt le principe de la sous-position de Liskov , car elle modifie une postcondition: à savoir, vous pouvez définir X et Y indépendamment pour dessiner une ellipse, mais X doit toujours être égal à Y pour les cercles. Mais le problème ici n'est-il pas causé par le fait …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.