我正在尝试一种新的代码结构,我将我所有的大型存储库和工厂拆分为大量较小的类,每个类都有一个单一的职责。最重要的是,我使用动词作为类名,因为我认为这是准确描述每个类的含义的最佳方式。
每个类只有一个公共方法(称为“Execute”),但通常有私有方法,有时还有一个带参数的构造函数。
例子:
前:
class DocumentRepository {
public List<Document> GetDocuments()
public void SaveDocument(Document document)
public Document CopyDocument(int id)
}
后:
class GetDocuments {
public List<Document> Execute()
}
class SaveDocument {
public void Execute(Document document)
}
class CopyDocument {
public Document Execute(int id)
}
这种结构的一个好处是我更愿意将公共方法的功能拆分为多个私有方法(更易于阅读和管理)。在此之前会增加存储库中的混乱,但现在私有方法包含在它们单独的类中。
我一直读到类应该有名词作为名称,但是当一个类只有一个用途时,最好用它的作用来命名它。
问题:
这是一个坏主意(分离和命名)?如果是这样,创建这种分离并避免大类的更好方法是什么?
编辑:应该注意的是,我从命令查询的角度得出了这些(奇怪的)想法。因此,将其与存储库进行比较也许最有意义。