(一)设计模式分类和七大原理

一、衡量软件质量的属性:可维护性和可复用性。

二、设计模式按照目的分类:创建型、结构型、行为型。

1、创建型:抽象工厂模式、建造者模式、工厂方法模式、原型模式。
2、结构型:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。
3、行为型:职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。

三、七大原理

单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成复用原则、迪米特法则。
1、单一职责原理
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
我的理解:建议先写注释,明确这个类(方法)是做什么的,在写具体的方法(方法体),如果方法太多(方法体太长),考虑这个类(方法)是否合理;
好处:高内聚、低耦合。被复用可能就越高;发生变化对其他的职责影响很小。
2、开闭原理
软件实体应当对扩展开放,对修改关闭。
我的理解:当有新的需求开发,不影响当前已经实现的功能。定义抽象层,再通过是具体类进行扩展。
3、里氏代换原则
所有引用基类的地方必须能透明地使用其子类的对象。
我的理解:基类出现的地方,都能将基类替换子类,程勋不会发生任何的错误和异常。
4、依赖倒转原则
高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖细节,细节应该依赖于抽象。
我的理解:尽可能引用抽象层类,增加代码的灵活性。相当于接口编程一般。另外具体类只实现抽象层的方法,而不要给出多余的方法(可存在内部使用的私有方法),否则无法调用子类多余的新方法。
5、接口隔离原则
客户端不应该依赖那些它不需要的接口。
我的理解:每个接口都是粒度合适且相对独立的角色,使得客户端只会看到应该看的方法
6、合成复用原则
优先使用对象组合,而不是通过继承来达到复用的目的。
我的理解:将一个类作为另一个类的成员对象,从而调用其功能,降低继承的作用。
7、迪米特法则
每一个软件单元对其他单元都只有最少的知识,而且局限于那些与本单元密切相关的软件单元。
只会与以下几类对象交互:
(1)当前对象本身;
(2)以参数形式传入到当前对象方法中的对象;
(3)当前对象的成员对象。
(4)如果当前的对象是一个集合,那么集合中的元素也都是朋友。
(5)当前对象所创建的对象。

如果两个对象之间不必彼此通信, 两个对象就不应当发生任何直接的相互作用,如果其中一个对象需要调用另一个对象的方法,可以通过“第三者”转发这个调用。
我的理解:除了和对象本身应该紧密接触之外的对象,要通过“第三者”进行调用。

你可能感兴趣的:(设计模式,设计模式)