设计模式心得:开篇——简单工厂、工厂、抽象工厂
时间:2010-10-13 来源:陌路vs追忆
“能清晰的表达出来,才表示自己真正的理解了。”今天师父告诉我一个学习方法,必须养成这个良好的习惯。刚好最近在学习设计模式,从今天起每天记下自己对模式的理解,以加深自己的理解。现在就开始开篇——简单工厂、工厂、抽象工厂模式。
简单工厂:它封装了一个创建“产品”的类,这个“产品”都是继承某个类或是实现了某个接口。简单工厂的目的是将创建实例封装在一个类中,达到动态创建实例的目的。
工厂模式:它同样封装了一个创建“产品”的类,不同的是,它是个抽象类或者是个接口,它的创建方法都要由子类来实现。工厂模式是用来封装创建更复杂的“产品”的模式。
抽象工厂:它和工厂模式相似,不同的是它是定义了多个创建“产品”方法的类。抽象工厂是用来创建一个“产品”家族的,是用来创建系列产品的模式。
适用分析:
当“产品”相对简单的时候,可以选择简单工厂模式,只需要传递给简单工厂参数,它就可以“生产”出你需要的“产品”。但是当“产品”变得复杂时,由于简单工厂是根据具体参数“生产”的“产品”,可以说是“工艺”相似的“产品”。如果说“生产工艺”完全不同的时(仍是同一类“产品”有相同的父类或接口),就需要工厂模式了,它的“生产”工作都是由子类来实现的,可以生产出不同工艺的“产品”。当“产品”更复杂的时候,比如某个工厂要生产出一系列相关的“产品”的时候,就需要用上抽象工厂了。当然用抽象工厂也有缺点,比如如果抽象工厂需要增加一种“产品”的生产方法的时候,就会相对变得比较棘手,需要更新很多类。当然每种模式都是有优缺点的!
第一篇模式分析,写的比较简短,慢慢积累,以后在写文章方面也会有提升!