1:思想
(1)专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
(2)由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类的实例。
2:UML
工厂(creator)角色;
抽象(product)角色、具体产品(concrete product)角色。
3:特点
工厂类是整个模式的关键,它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。
4:缺点
缺点也正体现在工厂类,由于工厂类集中了所有实例的创建逻辑,所以“高内聚”做的不好!
对于客户端部分,它是符合开闭原则的;
但是对于工厂部分不太理想,因为每增加一类产品,都要在工厂类中增加相应的业务逻辑或者判断逻辑,这显然是违背开闭原则的!