理解设计模式中7种原则

1.单一职责原则

1.降低类的复杂度,一个类只做一件事(这样类就用的多)
2.如果逻辑简单,方法不多,类可以不用遵守单一,但是方法上一点要遵守单一职责

2.接口隔离原则

A类通过接口去依赖B类,大的接口拆分小的接口,去依赖小的接口
1.多个接口,多个方法,普通类实现多个接口,以及重写方法
2.普通类里,不同名的方法,参数里面传不同的接口名
3.A a = new A()
a.方法(new B())调用直接传接口的实现类

3.依赖倒转原则(找一个中间人)

1.高层模块不能依赖底层模块,都应该要依赖抽象
2.中心思想是面向接口编程(使用接口抽象是规范)
案例:
一个QQ类接收电子邮箱,接收方法里面传电子邮箱对象
上面比较容易想到如果我们获取的对象是征信,短信等等,则新增类,同时Perons也要增加相应的接收方法
优化思路:
引入一个抽象的接口 Receiver,表示接收者,这样 Person类与接口工 Receiver发生依赖因为Emai1, Weixin等等属于接收的范围,他们各自实现 Treceiver接口就ok,这样我们就符号依赖倒转原则

4.里氏替换原则

继承弊端 如果父类修改,子类跟着修改,增强了耦合性,特别是多态频繁
在使用继承,遵守里氏替换原则,子类中尽量不要重写父类的方法
解决是聚合,组合,依赖来解决问题

5.开闭原则,前面的都是为了这个

类,模块应该对提供方扩展开发,对修改关闭(使用方),用抽象构造框架,实现扩展细节
增加代码,不是修改

6.迪米特法则

最少知道原则,核心是降低类之间的耦合.
直接的朋友,只要二个对象之间是朋友关系,例如依赖,关联,组合,聚合.
方法返回值,参数,成员变量中的类是直接朋友.
方法里的局部变量(对象)不是朋友,违法了迪米特法则
理解:不要把自己的对象写在别人的方法里面,应该把自己对象写在自己类中的方法封装
别人的方法通过参数调用此方法

7.合成复用

原则尽量使用合成/聚合,不要用继承

1.聚合是成员变量,整体与部分可以分开

2.关联是成员变量一对一,一对多.类与类之间的联系

3.合成是类中的成员对象,整体和部分不可分离,同生共死

4.组合和合成相同,唯一的区别是项目中进行级联删除,删除A,B也一起删除,那么AB就是组合

三种类型
1.创建型模式:解决创建对象
2.结构性模式:解决类之间的问题
3.行为性模式:解决方法的问题

说出来有点好笑,无意识的在遵守上面这些规则,设计模式基于上面7种实现,学会了有好处

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章