Mnémoniques pour un ensemble de principes de conception: responsabilité unique, ouvert-fermé, substitution Liskov, ségrégation d'interface, inversion de dépendance
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 …
Exemple Je suis tombé sur un code monolithique qui fait "tout" en un seul endroit - charger des données à partir de la base de données, montrer le balisage HTML, agir comme un routeur / contrôleur / action. J'ai commencé à appliquer le code de base de données mobile SRP …
J'essayais de comprendre la différence entre le principe ouvert et fermé (OCP) et le principe d'inversion de dépendance (DIP). Sur la base des recherches que j'ai faites sur Internet jusqu'à présent, je suis arrivé à la conclusion que «le DIP est une option grâce à laquelle nous pouvons atteindre l'OCP». …
Wikipédia dit "les entités logicielles (classes, modules, fonctions, etc.) devraient être ouvertes pour l'extension, mais fermées pour la modification" Le mot fonctions a attiré mon attention, et je me demande maintenant si nous pouvons supposer que la création d'une surcharge pour une méthode peut être considérée comme un exemple du …
Disons que nous avons l'interface suivante - interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } La condition préalable est que ConnectionString doit être défini / initialisé avant que l'une des méthodes puisse être exécutée. Cette condition préalable …
Voici un problème que je rencontre fréquemment: qu'il y ait un projet de boutique en ligne ayant une classe de produit. Je souhaite ajouter une fonctionnalité qui permet aux utilisateurs de publier des avis sur un produit. J'ai donc une classe Review qui fait référence à un produit. Maintenant, j'ai …
Il y a déjà une question assez utile dans ce sens (" Motifs de conception non-POO? "), Mais je suis plus curieux de savoir un point de vue transitionnel pour quelqu'un qui vient de commencer avec des langages dynamiques et faiblement typés. C'est-à-dire: disons que je programme en C ++, …
Comme le principe de ségrégation d'interface suggère qu'aucun client ne devrait être forcé de dépendre de méthodes qu'il n'utilise pas, donc un client ne devrait pas implémenter une méthode vide pour ses méthodes d'interface, sinon cette méthode d'interface devrait être placée dans une autre interface. Mais qu'en est-il des méthodes …
Je fais des applications métier où tous les autres développeurs sont habitués à faire des applications CRUD de base ou se concentrent uniquement sur la création d'interfaces jolies / fonctionnelles et j'obtiens beaucoup les éléments suivants. "Avec la façon dont nous le faisons, l'employé aurait tout ce que vous pourriez …
J'ai récemment lu Clean Code et divers articles en ligne sur SOLID, et plus j'en lis, plus j'ai l'impression de ne rien savoir. Supposons que je construis une application Web à l'aide d'ASP.NET MVC 3. Disons que j'ai un UsersControlleravec une Createaction comme celle-ci: public class UsersController : Controller { …
J'ai une classe qui calcule le revenu annuel net des travailleurs. Il a une constante représentant un pourcentage de taxe. Mais un jour, le taux d'imposition a changé, je dois donc corriger le code. Le fait de fixer cette constante indique-t-il une violation du principe ouvert-fermé , car il postule …
Dans cette série d'articles de blog , Eric Lippert décrit un problème de conception orientée objet utilisant des assistants et des guerriers comme exemples, où: abstract class Weapon { } sealed class Staff : Weapon { } sealed class Sword : Weapon { } abstract class Player { public Weapon …
Extrait du développement logiciel Agile, principes, modèles et pratiques: Pearson New International Edition : Parfois, les méthodes invoquées par différents groupes de clients se chevauchent. Si le chevauchement est faible, les interfaces des groupes doivent rester distinctes. Les fonctions communes doivent être déclarées dans toutes les interfaces qui se chevauchent. …
J'ai grandi en utilisant un principe de conception et de consommation d'interfaces qui dit essentiellement: «ne demandez que ce dont vous avez besoin» Par exemple, si j'ai un tas de types qui peuvent être supprimés, je ferai une Deletableinterface: interface Deletable { void delete(); } Ensuite, je peux écrire une …
Fermé. Cette question est hors sujet . Il n'accepte pas actuellement les réponses. Vous souhaitez améliorer cette question? Mettez à jour la question afin qu'elle soit sur le sujet pour Software Engineering Stack Exchange. Fermé il y a 6 ans . J'ai donc récemment eu des entretiens sur place avec …
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.