139 votes

Différence entre modèle de conception et architecture?

Quand on lit sur le modèle de Conception sur internet nous obtenons 3 catégorie Creational ,Structurelles et Comportementales mais quand on fait de l'architecture d'un logiciel, alors nous pensons à propos de MVP, MVC ou MVVM. Et dans Creational modèle que j'ai trouvé le pattern Singleton, mais j'ai utiliser un singleton dans mon MONOSPACE donc ma question est: le Design Est un modèle de la structure d'un produit ? * si oui, alors comment singleton peut être un modèle de conception parce que je peux l'utiliser n'importe où, dans mon application, fondamentalement, il s'limiter seulement à créer une instance à la fois dans la mémoire, mais ce concept ne permet pas de définir la manière dont le logiciel de conception? * si non, où en sommes-MVP, MVC et MVVM en 3 type de motif et quelle est la différence entre la Conception et l'Architecture du logiciel.

202voto

pyfunc Points 31088

Elle exige une explication détaillée, mais je vais essayer d'esquisser les différences au meilleur de ma connaissance.

Le motif sont distillée communs que vous trouverez dans les programmes. Il nous permet de déconstruire un grand complexe de la structure et de construire à l'aide de pièces simples. Il fournit une solution générale pour une classe de problèmes.

Un grand complexe logiciel passe par une série de déconstruction à différents niveaux. Au niveau plus large, modèles architecturaux sont les outils. Au niveau plus fin, les modèles de conception sont les outils et au niveau de mise en œuvre, paradigmes de programmation sont les outils.

Un modèle peut se produire à des niveaux très différents. Voir Les Fractales. Tri rapide, de Fusion et de tri sont tous des modèles algorithmiques pour l'organisation d'un groupe d'éléments dans un ordre.

Pour une vision simpliste:

 Programming paradigms   Specific to programming language
 ......................
 Design patterns         Solves reoccurring problems in software construction
 ......................
 Architectural patterns  Fundamental structural organization for software systems
 ......................

Les expressions idiomatiques sont paradigme spécifique et spécifique à la langue des techniques de programmation remplir dans les détails de bas niveau.

Les modèles de conception sont généralement associées à niveau du code de points communs. Il offre divers programmes pour le raffinage et la construction de petits sous-systèmes. Il est généralement influencé par le langage de programmation. Certains modèles pâle dans l'insignifiance en raison de paradigmes de langage. Les Design patterns sont des moyennes à l'échelle des tactiques de la chair de certains de la structure et du comportement des entités et de leurs relations.

Alors que les modèles architecturaux sont considérés comme communs à un niveau plus élevé que les modèles de conception. Modèles architecturaux sont des stratégies de haut niveau que les préoccupations à grande échelle de composants, les propriétés globales et les mécanismes d'un système.

Comment sont les modèles obtenus? Par le biais de :

  1. la ré-utilisation
  2. classification
  3. et enfin l'abstraction pour en extraire les points communs.

Si vous avez suivi les pensées posées ci-dessus. Vous verrez que le Singleton est un "modèle de conception" tout en MVC est l'un des "architectural" modèle d'affaire avec la séparation des préoccupations.

Essayez de lire sur:

  1. http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
  2. http://en.wikipedia.org/wiki/Design_pattern
  3. http://en.wikipedia.org/wiki/Anti-pattern

1voto

ofi Points 366

Eh bien, pour la partie principale, c'est une question de la langue. Selon mon expérience, la frontière entre le design et l'architecture, comme en ce qui concerne les logiciels, est un large fleuve avec sa largeur résultant du niveau de l'eau qui est principalement influencé par les saisons de marketing. Généralement, le terme "design" est utilisé avec un fort aspect du logiciel le comportement des produits reconnus par les utilisateurs finaux, alors que "l'architecture" correspond à la structure technique d'un logiciel, j'. e. les composants, les bibliothèques, les protocoles et quoi qu'il en aura besoin pour s'acquitter de la conception. "Design patterns" prenez deux rôles: 1er, ils sont considérés comme les meilleures pratiques pour résoudre une catégorie de (plus ou moins) à des problèmes courants, pas prodiucts; 2e ils aident les développeurs à communiquer. Rester avec votre exemple d'un Singleton, il nous permet de savoir ce que la mécanique est par juste en utilisant le mot, au lieu d'expliquer à chaque fois, que nous avons créé une instance unique à l'aide d'un désignée dataspace (variable ou quoi que ce soit) qui est fixé de manière contrôlée et est garanti d'être la seule, car nous avons protégé le constructeur de la classe etc. Donc, à mon humble avis, la réponse courte à votre question est: Cela dépend de qui est en train de parler. Cela fait-il un sens?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X