【设计模式】之开闭原则

来源:互联网 发布:php curl get请求时间 编辑:程序博客网 时间:2024/05/22 12:37

理解:开闭原则,即对扩展开放,对修改关闭。也即是不能修改,但是又能做到被扩展,利于增添新功能。

代码如下:

//车子类
public   class  Vehicle {public  void run() {System.out.println("start to run ");}}

//自行车类
public class Bike extends Vehicle {@Overridepublic void run() {System.out.println("自行车");super.run();}}

//摩托车类
public class Motorbike extends Vehicle {@Overridepublic void run() {System.out.println("摩托车");super.run();}}


现在已经实现了对车子(Vehicle)类的扩展,但是没有修改。


升华:(对开闭原则的支持)

1、里氏代换原则:任何类可以出现的地方,之内一定也可以出现。

2、依赖倒转原则:依赖于抽象,不要依赖于现实。

3、合成/聚合原则:尽量使用合成/聚合,而不用继承来实现复用的目的。

合成/聚合:FileInputStream 中的close方法。

4、迪米特法则:一个软件实体尽可能少的和其他实体发生冲突。

5、接口隔离原则:为客户端提供尽可能小的单独的接口。而不要提供大的总接口。

6、策略模式:如果有一组算法,那么将每一个算法封装起来,是的它们可以互换。显然,策略模式就是从对可变性的封装原则出发,达到“开-闭”原则的一个范例。

策略模式:List接口,Map等接口。

将一些算法封装起来,其他如果有好的算法可以重新写,而不必重新定义接口。




原创粉丝点击