Jak*_*134 5 c# design-patterns
我挣扎的软件开发的一个主要方面是将正确的责任委托给我的程序中的类.在我的第一个初级角色工作,我也接触到许多不同的设计模式和想法,有时信息可能是压倒性的.
显然,当我们构建软件时,我们倾向于声明一个类应该只对一件事和一件事负责.它应该做得很好,仅此而已.因此,在Factory模式的情况下,Factory类应负责构建产品并公开允许导向器从工厂中提取产品的界面.
然而,工厂类显然需要从某个地方接收数据来构建产品,没有输入数据我们没有输出产品.因此,我想知道是否包含工厂查询数据库的功能是否合适?我的理由是,如果工厂的任务是构建特定产品,那么它还应负责检索构建该产品所需的数据.但我不能100%确定这是否正确.
或者,是否应该有一个存储库类,谁负责从数据库中检索有问题的数据,然后可以将其传递给工厂以组装成所需的产品?在这种情况下,使用存储库类似乎有点过分,因为我们有一个类,它将包含大量不同的数据,然后必须将它们运送到工厂类.
如果我们还要记住鲍勃叔叔的教导,即声明函数和方法绝对不应超过三个参数,那么我们将通过将大量数据传递给工厂来打破这一规则.如果我们在传递给工厂之前首先将数据组装成一个包含类,那么我们基本上是在存储库类中完成工厂的工作.
在这方面我会非常感激一些指导,因为我脑子里的线条很模糊,我不知道该怎么办.
您不应该使用工厂模式来构建从数据库中提取的对象。为此目的有存储库模式和数据映射器模式。这些模式必须封装数据存储的所有工作逻辑。这些模式必须承担以下责任:
对象之间的合作算法可以如下所示:
另外,您可以在Microsoft 网站上阅读有关 C# 存储库模式的更多详细信息,并且可以查看存储库模式的 C# 示例