设计模式----简单工厂模式

来源:互联网 发布:java编程输出质数 编辑:程序博客网 时间:2024/06/04 20:07

 

       百度下,简单工厂模式就是由一个工厂对象决定创建出哪一种产品类的实例。简单说就是有个工厂可以根据客户的需求可能就是一个参数,创建不一样的产品,把生成对象的过程封装起来,不过事先工厂要先定义好你要的产品,不然它都没有,怎么生成你要的产品。

我自己写的一个动物类例子:

父类:

两个子类,继承父类的属性、方法,并都重写了父类的方法:

鸟:


鱼:

        

写的工厂测试类,通过operationFactory方法,根据传参创建不同的对象,这里涉及java的多态特性:

工厂模式好处:
以后增加新动物的子类,直接增加新类,不用修改旧的类,同时要修改测试工厂类中的operationFactory方法,把新类型加入。即只是修改要修改的类,不会影响其他类。
缺点:
违反高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中,它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了,以后维护和扩展不好
试用场景:
1.工厂类负责创建的对象比较少;
2.客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
3.由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。

   UML类图:

      


例子很简单,简单写简单看,有什么问题,大家一起探讨。

参考书籍 《大话设计模式》


原创粉丝点击