web-dev-qa-db-fra.com

Différence entre modèle et principe

Quelle est la différence entre les modèles de conception orientés objet et les principes? Sont-ils des choses différentes? Autant que j'ai compris les deux, essayez d'atteindre un objectif commun (E, g. Flexibilité). Alors, puis-je dire qu'un modèle est un principe et vice versa?

Principe de conception = SOLID (I.e. principe d'inversion de dépendance)

Modèle de conception = gof (I.e. Modèle d'usine abstraite)

21
Chandi Gorom

Non, ils ne sont pas les mêmes.

Les modèles sont des solutions courantes à problèmes de programmation orientés objet. (Je ne suis pas au courant de livres similaires pour une programmation fonctionnelle ou déclarative.) L'idée a été cristallisée dans le célèbre livre de "modèles de conception" par le gang de quatre en 1995.

Comme l'indique ANDRE, les modèles sont courants dans tous les paradigmes. Je vais réitérer ma déclaration précédente: Je suis Pas au courant de livres similaires pour une programmation fonctionnelle ou déclarative, mais Andre a remédier à mon ignorance avec le lien qu'il a fourni ci-dessous. (Merci, Andre.)

Les principes sont moins importants sur des langues particulières ou des paradigmes, plus générales. "Ne te répète pas toi-même" - DRY Principe - est vrai pour toute la programmation.

24
duffymo

Ces concepts ne sont pas identiques :

* 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: principe de fermeture ouverte

* Modèle de conception: * Un modèle de conception est une solution générale réutilisable à un problème couramment dans un contexte donné dans la conception de logiciels. Comme: singleton

19
amicngh

Les modèles sont des principes, quelles implémentations sont des modèles.

Un principe serait "indirect", qui pourrait être accompli par un modèle "usine", qui est mis en œuvre comme une classe avec des méthodes d'usine à la fin.

7
K..

Les modèles sont plus 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ù indépendamment du contexte. En réalité des motifs basés sur des principes (SRP, sec, etc.)

PAR EXEMPLE. Permet de regarder 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 blocs de construction, utilisés par des bagages pour atteindre l'objectif. Lorsque vous implémentez le modèle de stratégie, vous utilisez Solid:

  • SRP - Vous définissez le code, qui responsable de l'algorithme et l'extrait d'un autre code.
  • OCP - Vous définissez l'abstraction, qui représente tous les algorithmes différents et l'utiliser
  • LSP - Vous n'utilisez pas de classes d'algorithme concrètes dans le code client, seulement abstraction
3
lazyberezovsky

Eh bien, les principes sont des règles tandis que les modèles sont leurs exemples concrets.

3
Ahmad

Modèles où documenté à l'origine pour l'architecture. En architecture, appliquez-la des choses allant du placement de la porte dans une pièce à la disposition d'un village.

Le gang de quatre a appliqué l'idée à la programmation orientée objet. Il peut y avoir plus d'un motif qui peut être utilisé pour résoudre un problème, mais chaque motif aura une implémentation spécifique. Les modèles existent dans d'autres approches de programmation, mais je ne suis au courant d'aucun livre applicable. Comme d'autres personnes ont mentionné des modèles couvrent des implémentations spécifiques. En utilisant un motif lorsqu'il ne s'applique pas est souvent considéré comme un anti-motif.

Les principes ne couvrent pas la mise en œuvre, bien qu'il puisse y avoir des approches de mise en œuvre standard. Les principes sont davantage sur la couverture des problèmes généraux plutôt que sur des problèmes spécifiques. Pour l'inversion du contrôle, je suis au courant d'au moins trois approches de mise en œuvre. Pour DRY (Ne vous répétez pas vous-même), je ne connais pas d'une approche de mise en œuvre spécifique SINGE, bien que j'utilise plusieurs.

Envisager

  • Vous avez été invité à utiliser un motif comme un modèle d'usine abstrait comme la seule approche pour développer un programme. Cela serait-il approprié? Non, alors c'est probablement un motif.
  • Vous avez été demandé d'appliquer DRY à tous les composants? Cela serait-il approprié? Oui, alors il est plus susceptible d'être un principe.
2
BillThor

Oo principe de conception-

Oo principe est un ensemble de directives qui garantit OOP Concept. Basé sur le OOP concept, cela définit des moyens de concevoir une meilleure façon, une meilleure conception. La base OO Conception principe est solide.

Un modèle de conception fournit une solution générale à un problème de conception. Veuillez noter que le "modèle de conception" peut être appliqué sur le mot orienté objet de midi. Donc a OO des motifs de conception (OODPS) qui fournissent une solution générale à la conception orientée objet basée OO = principe. Les motifs de conception sont découverts, non inventés. Là Sont plusieurs façons de définir Oodps et le plus célèbre est BSc [Création de la structure comportementale].

Voici le lien pour une explication détaillée. http://techythoue.wordpress.com/2013/01/21/design-PrinPle-vs-ds-design-pattern-descritures-oop-elements/

1
Tanzy