我正在尝试一种新的代码结构,我将所有巨型资源库和工厂分解为每个负责一个小类的负载。最重要的是,我使用动词来表示类名,因为我认为这是最准确地描述每个类的意思。单功能类(命名为动词)
每个类只有一个公共方法(称为“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)
}
一个这种结构的好处是,我更愿意拆分公众的功能方法转换为多个私有方法(更容易阅读和管理)。在此之前会增加存储库中的混乱,但现在私有方法被包含在它们各自的类中。
我一直都认为类应该有名词作为名字,但是当一个类只有一个用途时,最好用它的名字命名。
问题:
这是一个坏主意(分离和命名都)?如果是这样,创建这种分离并避免大型课程的更好方法是什么?
编辑: 应该指出,我已经从命令查询的角度来看这些(奇怪的)想法。所以也许最有意义的是比较它而不是存储库。
这可能会更好放置在http://codereview.stackexchange.com。也就是说,我会说班级是名词,方法是动词,但这都是意见。 –