Ivar Jacobson:任何系统在其生命周期都会变化,如果我们期望我们开发的系统不会在第1版后就被抛弃,就必须牢记这一点.
Open-Closed Principle
1.Open(Open for extension)
模块的行为必须是开放的,支持扩展的,而不是僵化的.
2.Closed(Closed for modification)
对模块进行扩展时,不应该影响或大规模影响已有模块的其他部分.

开放-封闭原则OCP(Open-Close Principle)class Cllient

 我们看到Server类是从ClientInterface继承的,不过ClientInterface却不叫ServerInterface叫ClientInterface,原因是我们希望对Client来说ClientInterface是固定下来的,变化的只是Server.开放了,也封闭了:)这实际上就变成了一种策略模式(Gof Strategy).
Bob还提到了一种实现ocp的方法,那就是Template Method
开放-封闭原则OCP(Open-Close Principle)absract class policy
}


同时,我们应该仅对程序中呈现频繁变化的那部分做抽象.不成熟的抽象和没有抽象一样的坏.

相关文章: