2017-01-09 2 views
1

J'ai essayé d'en savoir plus sur l'architecture propre de l'oncle Bob à partir de blogs, d'articles et de vidéos.Architecture propre: flux de séquence entre les cadres

Si j'utilisais une base de données dans cette architecture, alors qu'est-ce que l'interface utilisateur (en tant que framework tel que le web ou le formulaire) devrait connaître sur la base de données? Ou plus généralement, comment les données doivent-elles circuler entre deux ou plusieurs pièces/pièces situées dans la même couche? Par exemple, l'interface utilisateur communiquerait avec mes adaptateur (s)/passerelle (s) pour interagir avec les entités commerciales. Pour lire/écrire, je peux voir que l'interface utilisateur pourrait appeler n'importe quelle classe/classes qui peuvent accéder à la base de données et passer dans les adaptateurs/passerelle (s), de sorte qu'il puisse interagir avec les entités commerciales.

public class SomeUI 
    { 
     public static void Main(string[] args) 
     { 
      SomeAdapter adapter = new SomeAdapter(); 
      SomeDataAccess db = new SomeDataAccess(); 
      db.Save(adapter); 
     } 
    } 

    public class SomeDataAccess 
    { 
     public void Save(SomeAdapter adapter) 
     { 
      //Interact with database 
     } 
    } 

    public class SomeAdapter 
    { 
     //properties 
    } 

Un grand nombre des articles varient à peine hors de celui-ci (https://subvisual.co/blog/posts/20-clean-architecture). Je n'ai pas trouvé un bon article qui couvre comment les morceaux qui sont dans la même couche devraient fonctionner les uns avec les autres. Donc, les articles qui se réfèrent à cela seraient une réponse acceptable. Cela ne semble pas enfreindre la règle de dépendance, mais il semble que je ne fais pas quelque chose de bien, puisque je fais une dépendance entre mon interface utilisateur et la base de données. Je crois que je suis peut-être trop penser le concept, et je crois qu'il peut être de marteler à apprendre l'architecture à trois niveaux (UI -> BLL -> DAL).

Répondre

1

J'ai fait plus de recherches sur d'autres exemples d'architecture propre.

architecture design http://retromocha.com/assets/images/obvious-architecture-e3b86eaa.png (source). À partir du diagramme ci-dessus, il semble que App (entités commerciales et cas d'utilisation) parle de Delivery (Externals: UI). La livraison est utilisée pour parler à External (Externals: DAL).

La livraison est l'endroit où vous implémentez le mécanisme de livraison de votre application elle-même. La livraison est l'endroit où votre application est intégrée avec des sources de données externes et montrée à l'utilisateur. Cela signifie en termes simples l'interface utilisateur, mais cela signifie également créer des versions concrètes des objets externes, tels que les prises de données, et aussi appeler les actions de l'application elle-même. -Retro Mocha

Alors, qui me porte à croire que oui l'exemple de code en haut est valide, mais je suis toujours ouvert à entendre si quelqu'un d'autre plus de fournir la réponse.