Quelle est la différence entre les modèles de conception orientés objet et les principes? S'agit-il de choses différentes? Autant que je sache, les deux essaient d'atteindre un objectif commun (par exemple, la flexibilité). Alors, puis-je dire qu'un modèle est un principe et vice versa?
Principe de conception = SOLIDE (c.-à-d. Principe d'inversion de dépendance)
Modèle de conception = Gof (c.-à-d. Modèle d'usine abstrait)
la source
Ces concepts ne sont pas les mêmes:
* Principe de conception: * Les principes de conception de logiciels représentent un ensemble de directives qui nous aident à éviter d'avoir une mauvaise conception. comme: Open Close Principle
* Design Pattern: * un Design Pattern est une solution générale réutilisable à un problème courant dans un contexte donné dans la conception de logiciels. Comme: Singleton
la source
Les modèles sont des principes, ce que les implémentations sont des modèles.
Un principe serait "l'indirection", qui pourrait être accompli par un modèle "d'usine", qui est implémenté en tant que classe avec des méthodes d'usine à la fin.
la source
Eh bien, les principes sont des règles tandis que les modèles sont leurs exemples concrets.
la source
Les modèles sont plus des choses de haut niveau que des principes. Les modèles résolvent des problèmes spécifiques. Les principes pourraient être appliqués n'importe où, quel que soit le contexte. En fait, des modèles basés sur des principes (SRP, DRY, etc.)
EG Regardons le modèle de stratégie. Il définit une famille d'algorithmes, encapsule chacun d'eux et les rend interchangeables. Donc, vous avez ici un concept d'algorithme de haut niveau. Avec le modèle d'État, vous avez un concept d'État de haut niveau. Avec des principes, vous n'avez pas de concepts de haut niveau. Les principes sont des éléments constitutifs qui sont utilisés par les patters pour atteindre l'objectif. Lorsque vous implémentez un modèle de stratégie, vous utilisez SOLID:
la source
Les modèles ont été initialement documentés pour l'architecture. En architecture, s'appliquent à des choses allant du placement de la porte dans une pièce à l'aménagement d'un village.
Le Gang of Four a appliqué l'idée à la programmation orientée objet. Il peut y avoir plus d'un modèle qui peut être utilisé pour résoudre un problème, mais chaque modèle aura une implémentation spécifique. Des modèles existent dans d'autres approches de programmation, mais je ne connais aucun livre applicable. Comme d'autres l'ont mentionné, les modèles couvrent des implémentations spécifiques. L'utilisation d'un modèle lorsqu'il ne s'applique pas est souvent considérée comme un anti-modèle.
Les principes ne couvrent pas la mise en œuvre, bien qu'il puisse exister des approches de mise en œuvre standard. Les principes visent davantage à couvrir des questions générales plutôt que des problèmes spécifiques. Pour Inversion of Control, je connais au moins trois approches d'implémentation. Pour DRY (Don't Repeat Yourself), je ne connais pas d'approche d'implémentation spécifique au singe, bien que j'en utilise plusieurs.
Considérer
la source
Principe de conception OO—
Le principe OO est un ensemble de directives qui garantit le concept OOP. Basé sur le concept OOP, cela définit des façons de concevoir une meilleure façon, une meilleure conception. Le principe de base de la conception OO est SOLIDE.
Un modèle de conception fournit une solution générale à un problème de conception. Veuillez noter que le «motif de conception» peut également être appliqué à un mot orienté objet à midi. Ainsi, les modèles de conception A OO (OODP) sont ceux qui fournissent une solution générale au principe OO basé sur la conception orientée objet. Les modèles de conception sont découverts, pas inventés. Il existe plusieurs façons de définir les OODP et la plus connue est la BSC [Behavioral Structural Creational].
Voici le lien pour une explication détaillée. http://techythought.wordpress.com/2013/01/21/design-principle-vs-ds-design-pattern-describing-oop-elements/
la source