2006年12月26日星期二

设计模式-工厂模式

前言:工厂模式属于创建模式,提供创建对象的接口。代理模式属于结构模式。

为何使用Factory模式?
因为工厂模式相当于创建实例对象的new,而创建实例对象时有时初始化要做很多工作,把很多工作放入一个方法中,有背于面向对象编程的原则。面向对象的封装(Encapsulation)和分派(Delegation)要求尽量将长的代码分派切割,将每段再封装,减少代码的耦合性。这样就可以分散风险。

抽象工厂
工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory).
这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Sample,如果我们还有新的产品接口Sample2.
这里假设:Sample有两个concrete类SampleA和SamleB,而Sample2也有两个concrete类Sample2A和SampleB2
那么,我们就将上例中Factory变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现

没有评论: