web-dev-qa-db-fra.com

Est-ce que ma compréhension de SOLID Principes est-elle correcte concernant ma mise en œuvre concrète?

Je lis tout et son contraire sur la façon d'organiser son code. Bien sûr, j'essaie de suivre les principes SOLID, mais que je me considère comme un débutant, j'aurais besoin de conseils extérieurs sur la manière de les mettre en pratique. Cela concerne l'architecture générale du site que je détaille les couches ci-dessous:

  • Contrôleur (définir un contrat de demande) -> appelez un service proxy
  • Service de proxy (validation des entrées, mise en cache et se loger quelques informations) -> Appelez le service concret
  • Service de béton (gérer la logique d'entreprise) -> Référentiel d'appel
  • Référentiel (interroger la base de données) -> Base de données d'appel

Donc, ce sont les couches de ma candidature! La partie dont je suis le moins confiante est le service proxy qui est une mise en œuvre du modèle de conception proxy. Peut-être que le service proxy a eu beaucoup de responsabilité.

En outre, je sais que cela est peut-être hors de sujet, mais je ne comprends pas la chose à propos de l'inversion de dépendance. Je veux dire, devrais-je vraiment créer une interface pour chaque service de proxy? Et chaque interface aura donc beaucoup de fonction!

Sur la base du principe d'inversion de dépendance, toutes les classes logiques de l'entreprise doivent mettre en œuvre une interface graine fine afin de permettre de multiples implémentations. source

Mais ... j'ai lu que l'interface doit être aussi petite que possible.

Alors gardez vos interfaces petites. Vous ne voulez pas qu'une interface ait 30 méthodes, 3 est un objectif bien meilleur. source

et sur le contraire J'ai également lu cela, car le service est responsable du flux logique, c'est bon s'ils contiennent beaucoup de fonctionnalités:

Notez que les classes de services peuvent sembler rompre le principe de responsabilité unique car ils peuvent appeler plusieurs classes de différentes couches et packages dans une seule méthode, mais c'est parce qu'ils modélisent le flux logique des données et, en tant que telles, c'est une pratique correcte. source

Alors enfin je suis perdu entre toutes ces informations et j'ai besoin de quelqu'un pour me pousser dans la bonne direction!

3
vincent PHILIPPE

Vous essayez d'appliquer SOLID Principes sur le niveau de service. Bien qu'ils soient à des principes généraux, ils ne sont pas un bon ajustement dans votre cas. SOLID= s'applique à l'orientation de l'objet dans un contexte linguistique de programmation.

0
Martin Maat