框架技术——设计模式(学习笔记)

一.面向对象的几个基本原则

  1. 面向抽象原则:
    指当设计一个类时,不让该类面向具体的类,而是面向抽象类或接口,即所设计类中的重要数据是抽象类或接口声明的变量,而不是具体类声明的变量。
  2. “开-闭”原则:
    对扩展开放,对修改关闭。 也就是当一个设计中增加新的模块时,不需要修改现有的模块。即一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化.
  3. “多用组合,少用继承”原则
    通过继承复用方法的缺点是:子类从父类继承的方法在编译时刻就确定下来了,所以无法在运行期间改变从父类继承的方法的行为;子类和父类的关系是强耦合关系,也就是说当父类的方法的行为更改时,必然导致子类发生变化;通过继承进行复用也称“白盒”复用,其缺点是父类的内部细节对于子类而言是可见的。
  4. “高内聚-弱耦合”原则
    如果类中的方法是一组相关的行为,则称该类是高内聚的,反之称为低内聚的。高内聚便于类的维护,而低内聚不利于类的维护。 低耦合就是尽量不要让一个类含有太多的其它类的实例的引用,以避免修改系统的其中一部分会影响到其它部分。

二.设计模式分类

行为型模式涉及怎样合理地设计对象之间的交互通信,以及怎样合理地为对象分配职责,让设计富有弹性,易维护,易复用。常见的行为型模式有:策略模式、状态模式、命令模式、中介者模式、责任链模式、模板方法模式、观察者模式和访问者模式

结构型模式涉及如何组合类和对象以形成更大的结构,和类有关的结构型模式涉及如何合理地使用继承机制,和对象有关的结构型模式涉及如何合理地使用对象组合机制。下列模式属于行结构型模式。常见的结构型模式有:装饰模式、组合模式、适配器模式、外观模式、代理模式、享元模式和桥接模式

创建型模式涉及对象的实例化,这类模式的特点是,不让用户代码依赖于对象的创建或排列方式,避免用户直接使用new运算符创建对象。常见的创建型模式有:工厂方法模式、抽象工厂模式、生成器模式、原型模式和单件模式。

三.工厂模式(Factory Pattern)

工厂模式分为简单工厂模式,工厂方法模式和抽象工厂模式,它们都属于设计模式中的创建型模式,其主要功能都是帮助我们把对象的实例化部分抽取了出来,目的是降低系统中代码耦合度,并且增强了系统的扩展性。

1.简单工厂模式(Simple Factory Pattern)

又称为静态工厂方法(StaticFactory Method)模式,它属于创建型模式。
在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类

框架技术——设计模式(学习笔记)
框架技术——设计模式(学习笔记)

2.工厂方法模式(Factory Method Pattern)

又称为工厂模式,也叫虚拟构造器(VirtualConstructor)模式或者多态工厂(PolymorphicFactory)模式,它属于类创建型模式。
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
框架技术——设计模式(学习笔记)
框架技术——设计模式(学习笔记)

3.抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式又称为Kit模式,别名配套模式,属于对象创建型模式。
提供-一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
框架技术——设计模式(学习笔记)

框架技术——设计模式(学习笔记)

**产品等级结构:**产品等级结构即产品的继承结构。
产品族:在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品。
框架技术——设计模式(学习笔记)

4.责任链模式(Chain of ResponsibilityPattern)

属于行为型模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一一个对象处理它为止。
框架技术——设计模式(学习笔记)

框架技术——设计模式(学习笔记)