【发布时间】:2012-06-09 21:56:40
【问题描述】:
当客户端应用程序请求一个新对象时, 我让 Factory 类为我创建新对象。
public class CarFactory{
public Car CreateCar()
{
//create a new car object and send back
}
}
汽车对象的属性是通过调用存储在数据库中的存储过程来填充的。在数据库中,我们存储可以每天更改的默认值。默认表由外部系统填充。
public class Car {
public List<string> DefaultTyres {get;set;}
public List<string> DefaultPetrolSpec {get;set;}
}
所以当工厂(服务层调用)创建 Car 对象时,工厂类调用存储库类,然后调用 DB 来填充 Car 的属性……但是这些层的关系听起来有点奇怪…… .
public Car CreateCar()
{
//create a new car object and send back
//Call CarRepository.GetDefaultTyres(), CarRepository.GetDefaultPetrolSpec() etc.
}
因为我认为我的工厂实现做了很多工作。可能它不应该调用存储库层(然后调用数据库来获取汽车对象的数据)。
你们怎么看?工厂类应该与数据库通信吗?如果他们这样做可以吗?如果不是,那应该是谁的责任?
【问题讨论】:
-
这篇文章是否有任何理由被标记在“C#”和“Java”和“.net”下?
-
@AlexLockwood 尽管我个人更喜欢拼写“Tires”,但“Tyers”在英式英语中是正确的......
-
谢谢亚历克斯。贝斯卡是正确的。亚历克斯,主要是因为我想引起 OOP 人的注意,我正在使用 Java 应用程序,我猜 C# 人有相似的背景:)
-
我删除了我之前的评论。感谢您让我知道...我不是来自英国,所以这是我的借口:P。
-
不用担心,我猜...我只是觉得很有趣,您决定用三种不同的语言标记您的帖子,但没有在“设计模式”或“工厂模式”下标记它" :)
标签: c# java .net oop design-patterns