百度下,简单工厂模式就是由一个工厂对象决定创建出哪一种产品类的实例。简单说就是有个工厂可以根据客户的需求可能就是一个参数,创建不一样的产品,把生成对象的过程封装起来,不过事先工厂要先定义好你要的产品,不然它都没有,怎么生成你要的产品。
我自己写的一个动物类例子:
父类:
两个子类,继承父类的属性、方法,并都重写了父类的方法:
鸟:
鱼:
写的工厂测试类,通过operationFactory方法,根据传参创建不同的对象,这里涉及java的多态特性:
工厂模式好处:
以后增加新动物的子类,直接增加新类,不用修改旧的类,同时要修改测试工厂类中的operationFactory方法,把新类型加入。即只是修改要修改的类,不会影响其他类。
缺点:
试用场景:
1.工厂类负责创建的对象比较少;
2.客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
3.由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
UML类图:
例子很简单,简单写简单看,有什么问题,大家一起探讨。
参考书籍 《大话设计模式》