Loading

设计模式的几条家规

单一职责原则描述的意思是每个类都只负责单一的功能,切不可太多,并且一个类应当尽量的把一个功能做到极致

比如实现一个计算机功能,就不可以上来就一个计算机类,然后提供读取数据,然后运算的操作,而是把读取的作为一个类,把计算的作为一个类,测试一个类这样来

 

里氏替换原则这个原则表达的意思是一个子类应该可以替换掉父类并且可以正常工作

子类一般不该重写父类的方法,因为父类的方法一般都是对外公布的接口,是具有不可变性的,你不该将一些不该变化的东西给修改掉。

 

接口隔离原则也称接口最小化原则,强调的是一个接口拥有的行为应该尽可能的小

如果你做不到这一点你经常会发现这样的状况,一个类实现了一个接口,里面很多方法都是空着的,只有个别几个方法实现了。这样做不仅会强制实现的人不得不实现本来不该实现的方法,最严重的是会给使用者造成假象,即这个实现类拥有接口中所有的行为,结果调用方法时却没收获到想要的结果。

 

依赖倒置原则这个原则描述的是高层模块不该依赖于低层模块,二者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象

这个原则描述的是一个现实当中的事实,即实现都是易变的,而只有抽象是稳定的,所以当依赖于抽象时,实现的变化并不会影响客户端的调用。从传统的MVC模式来说,这就是为什么创建服务层接口然后掉用数据层接口,因为他们各自的实现是易变,即使改了实现,但是并不影响整个服务调用逻辑代码。

 

迪米特原则也称最小知道原则,即一个类应该尽量不要知道其他类太多的东西,不要和陌生的类有太多接触

将类的部分方法变为私有封装在Reader类当中,这样外部的类就无法这些方法了,所以迪米特原则虽说是指的一个类应当尽量不要知道其他类太多细节,但其实更重要的是一个类应当不要让外部的类知道自己太多。两者是相辅相成的,只要你将类的封装性做的很好,那么外部的类就无法依赖当中的细节。

 

开-闭原则最后一个原则,一句话,对修改关闭,对扩展开放

 

posted @ 2018-05-20 16:16  卓庆森  阅读(318)  评论(0编辑  收藏  举报