Je suis un peu confus au sujet d'un paragraphe dans le code livre complet.
Dans la section "Classes d'éviter" il lit:
"Éviter les classes nommées après des verbes d'Une classe qui n'a qu'comportement, mais aucune donnée n'est généralement pas vraiment une classe. Envisager de transformer une classe comme DatabaseInitialization() ou StringBuilder() dans une routine sur une autre classe"
Mon code se compose principalement des verbes des classes sans données. Il y a invoicereaders, pricecalculators, messagebuilders etc. Je fais ça pour concentrer les classes à une tâche de chacun. Puis-je ajouter des dépendances à d'autres classes pour d'autres fonctionnalités.
Si je comprends le point correctement, je devrais utiliser un code comme
class Webservice : IInvoiceReader, IArticleReader {
public IList<Invoice> GetInvoices();
public IList<Article> GetArticles();
}
plutôt que de
class InvoiceReader : IInvoiceReader {
public InvoiceReader(IDataProvider dataProvider);
public IList<Invoice> GetInvoices();
}
class ArticleReader : IArticleReader {
public ArticleReader(IDataProvider dataProvider);
public IList<Article> GetArticles();
}
Modifier Merci pour toutes les réponses.
Ma conclusion, c'est que mon code actuel est de plus PRS que OO mais qu'il souffre également de la "anémique modèle de domaine".
Je suis sûr que les thèses intuitions pour m'aider dans l'avenir.