一、设计模式分类
最近于各种场合之中,深感设计模式之重要。这不仅仅对我们自己设计并写出高质量代码大有裨益,同时对我们理解一些框架源码亦有显而易见的好处。
我们常见的设计模式就是1994由Gof(四个软件工程学者的组合)归纳出来的23种设计模式(Design Pattern)。根据目的分可分为三类:Creational、Structural、Behavioral;根据范围,可分为类模式和对象模式。
二、创建型模式的优点
创建型模式将对象的创建和对象的使用过程分离,降低了系统的耦合度,使得软件系统更易于扩展。
三、常见的几种创建型模式
1. 简单工厂
简单工厂不属于Gof23种设计模式中的一员,但是这并不妨碍它具有很好的入门效果和借鉴意义。
简单工厂主要分为三部分:抽象产品类(接口)、具体产品类、具体产品工厂类;
抽象产品类(接口)中定义了这类产品通用的抽象方法,由具体产品类来实现具体业务逻辑,每增加一个产品需要新增一个具体产品类;
具体产品工厂类中有一个static类型的获取具体产品类的方法,只需要传入实际的参数就能返回一个具体产品类。
缺点:所有产品在一个工厂类里边,每次增加产品都需要修改工厂类,不符合开闭原则
2. 工厂模式
工厂模式组成部分:抽象工厂类、抽象产品类、具体工厂类、具体产品类
应用1:集合类中Collection接口就是这样的抽象工厂类,Iterator是抽象产品类
具体产品类(这里作为具体工厂类ArrayList的内部类):
具体工厂类就是ArrayList
应用2:Connection、Statement、Resultset
3. 抽象工厂模式
有产品族的概念,产品族易于增加,只需增加新的产品接口及其实现类就行,不会修改到原来代码;
原先的产品等级结构中新增产品比较麻烦,需要改动已有的接口;
这种现象称为开闭原则的偏向。
四、设计模式六大原则