我试图绕开开放式封闭原则:
模块应打开以进行扩展,模块应关闭以进行修改
就Java而言,扩展是专门继承还是包含继承以及新方法或属性的添加?
我也在努力地关闭以进行修改,这似乎对我意味着一旦编写了方法就无法更改。
这与实际工作似乎有些矛盾,在实际工作中,我将从jira提取任务,这将需要我更改代码库中的至少一种方法。
在过去的24小时中,我阅读了许多文章和文章,但我仍然不确定是否要贯彻这个原则。
任何简单的解释将非常有帮助。
最佳答案
您应该编写足够好的代码,而不必修改现有代码。曾经如果您需要现有方法的功能,则应该能够调用该方法,因为它应具有很高的内聚力,耦合度极低。
用这种方式想想,一旦盖房子,是将浴室的大小增加一倍(移动马桶,然后重新铺地板,重新盖上墙壁等),还是更轻松地建造日光室?前面有新入口的房子?
您应该封闭修改卧室,尽管并非不可能,但建造一个阳光房将使新空间变得更加容易。