开闭原则
开闭原则(Open-Closed Principle,OCP)是指一个软件实体应该对扩展开放,对修改关闭。所谓的开闭,其实是对修改和扩展两个行为的一个原则。它强调的是用抽象对象构建框架,用实现扩展细节。
示例
开闭原则其实在大话设计模式中说得非常好,让人通俗易懂。它举了一个例子,是加减乘除法的例子:
开始需求是做一个加法的操作。后来继续加入减法、乘法、除法。
开始我们想加法以后可能会做一个需求变更:加入其它的算法法则。所以我们要有一个预判性,这个预判性会导致我们项目以后的扩展性,也会导致如果需求发生变更,程序修改的难易程度。
所以,我们要做一个算法法则的操作类,加减乘除法都继承此操作接口。再加一个算法法则的客户端类类操作此算法。
依赖倒置原则
依赖倒置原则(Dependence-Inversion Principle,DIP)是指设计代码结构时,高层模块不应当依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖具体细节(实现),细节应该依赖抽象(接口)。