【发布时间】:2014-05-02 11:50:51
【问题描述】:
我正在努力成为一名更好的 C# 程序员并使用最佳实践设计模式。
有人能解释一下如何最好地使用存储库模式和观察者模式来处理下面的代码中的实际示例吗?
我有一个包含公司的系统。公司有部门和员工。此外,每家公司都支付订阅费用,这限制了他们可以创建的部门/员工的数量。一家公司不可能没有至少一个部门,而该部门应该有一名员工。
当我为公司创建存储库时 - 在“创建公司”代码中,我应该同时创建第一个部门和第一个员工,还是应该将存储库分开,或者最好只调用一次“创建公司”就可以了?
在“创建部门”代码中 - 我想确保公司不能创建更多他们已经支付费用的部门。我猜这里正确的是观察者模式——通知“订阅”代码公司正在尝试创建一个新部门,然后如果超过限制就停止它——但我没有任何线索从哪里开始!
非常感谢所有帮助。
【问题讨论】:
-
这个问题在这里是题外话,但你可以查看程序员.stackexchange.com 的帮助中心和/或元数据,看看那里是否欢迎这个问题。
-
同意@Maarten。虽然您可以使用观察者来有效地使检查异步,但您已经证明没有理由这样做,因此很难证明额外的复杂性与 if (LicenceCheck.CanAddCompany(CustomerID) ...
标签: c# design-patterns repository-pattern observer-pattern