Java 面向对象的开/闭原理
打开/关闭原则规定“软件实体(类、模块、函数等)应为扩展而打开,但为修改而关闭”Java 面向对象的开/闭原理,java,oop,Java,Oop,打开/关闭原则规定“软件实体(类、模块、函数等)应为扩展而打开,但为修改而关闭” 假设我有一个遗留域类,并且要求在域类中添加一个新字段,因此它是否违反了OOP的打开/关闭原则。如果是这样,我们如何在不违反打开/关闭原则的情况下实现这一要求?打开/关闭原则是“打开以扩展,关闭以修改” 其思想是,您可以设计系统,以便维护人员可以通过添加新类(通常是子类化或实现接口)来添加功能,而不必修改现有类 在您的场景中,如果您需要通过添加字段来修改域类,这是违反开放/关闭原则的设计的一个很好的例子 如果您可以通
假设我有一个遗留域类,并且要求在域类中添加一个新字段,因此它是否违反了OOP的打开/关闭原则。如果是这样,我们如何在不违反打开/关闭原则的情况下实现这一要求?打开/关闭原则是“打开以扩展,关闭以修改” 其思想是,您可以设计系统,以便维护人员可以通过添加新类(通常是子类化或实现接口)来添加功能,而不必修改现有类 在您的场景中,如果您需要通过添加字段来修改域类,这是违反开放/关闭原则的设计的一个很好的例子 如果您可以通过添加一个新类(可能扩展域类或扩展一些接口)来满足需求,那么域类是按照开放/封闭原则设计的。是否可以这样做取决于域类是否为此而设计
如果您必须修改域类,则可以考虑重构域类,这样可以通过添加类而不是修改域类来进行将来的更改。
开/闭原理是“打开扩展,但关闭以修改”。 其思想是,您可以设计系统,以便维护人员可以通过添加新类(通常是子类化或实现接口)来添加功能,而不必修改现有类
在您的场景中,如果您需要通过添加字段来修改域类,这是违反开放/关闭原则的设计的一个很好的例子 如果您可以通过添加一个新类(可能扩展域类或扩展一些接口)来满足需求,那么域类是按照开放/封闭原则设计的。是否可以这样做取决于域类是否为此而设计如果您必须修改域类,则可以考虑重构域类,这样可以通过添加类而不是修改域类来进行将来的更改。
系统总是在改变。我们应该改变我们的软件以适应新的需求。我们需要一些:
最后:为了回答您的问题,源代码的所有部分都应可用于评估OCP值。系统总是在变化。我们应该改变我们的软件以适应新的需求。我们需要一些: