java - 理解开闭原则

标签 java solid-principles open-closed-principle

我正在尝试理解开闭原则:

模块应该对扩展开放,对修改关闭

就java而言,扩展是专门的继承还是包括继承以及添加新方法或属性?

我也在努力思考关闭修改,这似乎对我来说意味着一旦编写了方法就无法更改。

这似乎与实际工作不一致,在实际工作中,我将从 jira 中获取任务,这将要求我更改代码库中的至少一种方法。

在过去 24 小时内,我读了很多帖子和文章,但我仍然不完全确定这条原则想要传达的是什么。

任何简单的解释都会非常有帮助。

最佳答案

您应该将代码编写得足够好,而不必修改现有代码。曾经。如果您需要现有方法的功能,您应该能够调用该方法,因为它应该具有高度内聚性和极低耦合性。

这样想,一旦你建了房子,是不是最好尝试将浴室的尺寸扩大一倍(移动厕所并重新铺地板、新墙……等),还是更容易 build 房子前面有一个日光浴室,有一个新的入口?

你应该拒绝改造卧室,虽然这并非不可能,但制作一个阳光房会更容易创造新的空间。

关于java - 理解开闭原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040699/

相关文章:

java - 无法解析方法 'setOnRefreshListener(anonymous android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener)'

java - 用于插入的 Guava 缓存监听器

java - 接口(interface)隔离原理应用

java - 访问者模式与开放/封闭原则 : how to add new visitable object?

java - 如何通过编程方式获取 Activity 标题名称 java android

java - 标准差 Java

dependency-injection - 依赖注入(inject)能走多远?

具有使用不同参数的构造函数的 Java 简单工厂

c# - 在这种情况下使用多态性优于枚举有什么好处吗?

java - 方法覆盖 : same argument list types (or COMPATIBLE types)?