创建类模式比较

July 14th, 2014 by JasonLe's Tech Leave a reply »

创建类模式包括工厂方法模式,建造者模式,抽象工厂模式,单例模式,原型模式,这些都是创建类的design pattern,可以创建class的创建。

单例模式和原型模式比较简单,单例模式主要是在内存中保持一个对象,原型模式是指通过复制的方式产生新的对象。

比较容易混淆的是工厂模式,抽象工厂模式和建造者模式。

1.工厂模式和抽象工厂模式其实就是一个工厂生产一种product与一个工厂生产多种product的区别。

Factory

AbstractFactory

下面主要来说一下工厂模式与建造者模式的区别。

工厂模式如上面所说的,创造一个整体的class,至于class内部是无法定制的。比如class内部的attribute,如果需要定制的话,就要用到建造者模式。

两种模式的class复杂度是不同的,工厂模式创建的产品是单一性质的产品,无法更改。而建造者模式创建的是一种复合的class,粒度不同,建造者模式制造的类更加精细

抽象工厂模式与建造者模式区别其实与上面所说的差不多,

抽象工厂屏蔽了建造的过程,建造者模式更加容易建造崭新的产品。

IMG_0433

总的来说从建造类的粒度来看:工厂模式>抽象工厂模式>建造者模式

我们要根据实际项目,来选择不同的粒度。