我正在尝试理解开闭原则:
模块应该对扩展开放,对修改关闭
就java而言,扩展是专门的继承还是包括继承以及添加新方法或属性?
我也在努力思考关闭修改,这似乎对我来说意味着一旦编写了方法就无法更改。
这似乎与实际工作不一致,在实际工作中,我将从 jira 中获取任务,这将要求我更改代码库中的至少一种方法。
在过去 24 小时内,我读了很多帖子和文章,但我仍然不完全确定这条原则想要传达的是什么。
任何简单的解释都会非常有帮助。
最佳答案
您应该将代码编写得足够好,而不必修改现有代码。曾经。如果您需要现有方法的功能,您应该能够调用该方法,因为它应该具有高度内聚性和极低耦合性。
这样想,一旦你建了房子,是不是最好尝试将浴室的尺寸扩大一倍(移动厕所并重新铺地板、新墙……等),还是更容易 build 房子前面有一个日光浴室,有一个新的入口?
你应该拒绝改造卧室,虽然这并非不可能,但制作一个阳光房会更容易创造新的空间。
关于java - 理解开闭原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040699/