工厂模式是类的创建型模式的一种.在工厂模式中,我们专门定义一个工厂类.这个类用于创建其他类的实例,通常这些实例具有共同的父类.
工厂模式的UML图如下所示:
举例来说,有一个Graph父类,它有两个子类(当然可以更多...):Sphere类和Triangle类.现在要通过工厂类来创建这两个子类的实例.其UML图如下所示:
代码如下:
工厂模式的优点:
1) 调用端不需要负责具体实例化,实例化由工厂完成;
工厂模式的缺点:
1) 工厂类集中了所有实例的创建逻辑,容易违反高内聚的责任分配原则;
2) 虽然简单工厂模式的一次性使用。它所能创建的类只能是事先教考虑到的,如果需要添加新的类,则就需要改变工厂类。