gpt4 book ai didi

design-patterns - 我怎样才能拥有一个遵守开闭原则的行为丰富的域实体?

转载 作者:行者123 更新时间:2023-12-04 15:25:00 25 4
gpt4 key购买 nike

Open-Closed Principle状态:

software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification



我现在正在设计一个域,并在我的域实体中包含相当多的行为。我正在使用域事件并将依赖项注入(inject)方法中,因此请确保我的实体不与外部影响耦合。但是,我突然想到,如果客户以后想要更多功能,我将不得不违反 OCP 并破解打开这些域实体以添加功能。行为丰富的领域实体如何与开闭原则和谐相处?

最佳答案

在设计类时牢记开闭原则 (OCP) 很有用,但立即使类“关闭以供修改”并不总是可行或可取的。我认为单一职责原则(SRP)在实践中更有用——只要一个类只做一件事,如果对那一件事的要求发生变化,就可以修改它。

此外,随着时间的推移,SRP 会导致 OCP;如果您发现自己经常更改一个类,您最终会对其进行重构,以便将更改部分隔离在一个单独的类中,从而使原始类更加封闭。

关于design-patterns - 我怎样才能拥有一个遵守开闭原则的行为丰富的域实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com