Byr*_*ahl 6 design-patterns domain-driven-design open-closed-principle
该开闭原则规定:
软件实体(类,模块,函数等)应该是可以扩展的,但是关闭以进行修改
我正在设计一个域名,并在我的域名实体中包含相当多的行为.我正在使用域事件并将依赖注入到方法中,因此请确保我的实体不会与外部影响耦合.但是,对我而言,如果客户端稍后需要更多功能,我将不得不违反OCP并破解这些域实体以添加功能.一个行为丰富的领域实体如何与开放封闭原则协调一致?
在设计类时牢记开闭原则 (OCP) 很有用,但立即使类“关闭以进行修改”并不总是实用或可取的。我认为单一职责原则 (SRP) 在实践中更有用——只要一个类只做一件事,如果那一件事的要求发生变化,就可以修改它。
此外,随着时间的推移,SRP 会导致 OCP;如果您发现自己经常更改一个类,您最终会对其进行重构,以便将更改部分隔离在一个单独的类中,从而使原始类更加封闭。