【发布时间】:2018-06-18 09:52:57
【问题描述】:
打开/关闭原则指出“软件实体(类、模块、函数等)应该对扩展开放,但对修改关闭”。
假设我有一个遗留域类,并且要求在域类中添加一个新字段,那么它是否违反了 OOP 的打开/关闭原则。如果是这样,我们如何在不违反Open/Close 原则的情况下实现这个要求?
【问题讨论】:
-
打开/关闭的主体无论如何都是垃圾。我不会注意的。
-
大多数OOP技术,如接口、抽象类、继承等,都是基于OCP产生的。但是,OCP 的定义和含义在新世界中可能会发生变化。请深入阅读 Robert C. Martin 的笔记here。 这不是垃圾。如今,OCP 主要用于架构和设计,而不是实现。在大多数情况下,Java 等编程语言会阻止您违反 OCP。