zoukankan      html  css  js  c++  java
  • 工厂模式

    之前总结了简单工厂模式,然后我们发现,如果需要添加一个新的产品的话,就需要对工厂就行修改,添加相应的判断语句,从而来创建需要的类型的对象。这样就提高了耦合性,维护起来也稍麻烦些。那么本文就总结下能够解决这个问题的另一种设计模式——工厂模式。

    工厂模式:factory pattern。GOF定义的二十三中设计模式之一,属于创建型模式。工厂模式和简单工厂模式最大的区别在于工厂模式添加了公共的抽象工厂以及抽象产品类。同时相应的子类工厂只能够创建相应的子类产品。一一对应。

    优点:当需要扩展的时候只需要添加新的产品类和工厂类,并集成抽象产品和抽象工厂类。不需要对抽象工厂类进行修改,提高了代码的可维护性和可扩展性。更好的体现了开放-关闭原则。

    缺点:

    当产品过多时,类将会成倍的增加。增加了系统的复制度。

    下面给出一个实例

    image

    代码如下:

    class goods

    {

    String name;

    public void show()

    {

    name="goods";

    System.out.println(name);

    }

    }

    class goodsA extends goods

    {

    String name;

    public void show()

    {

    name="goodsA";

    System.out.println(name);

    }

    }

    class goodsB extends goods

    {

    String name;

    public void show()

    {

    name="goodsB";

    System.out.println(name);

    }

    }

    class factory

    {

    public goods create()

    {

    return new goods();

    }

    }

    class factoryA extends factory

    {

    public goods create()

    {

    return new goodsA();

    }

    }

    class factoryB extends factory

    {

    public goods create()

    {

    return new goodsB();

    }

    }

    public class test

    {

    public static void main(String args[])

    {

    factory f;

    f=new factoryA();

    goods g;

    g=f.create();

    g.show();

    f=new factoryB();

    g=f.create();

    g.show();

    }

    }

    结果如下:

    image

    联系我:renhanlinbsl@163.com

    2016-8-2

    20:28

  • 相关阅读:
    浏览器版本过低
    虚拟PWN初探
    elasticsearch常用查询
    python安装pip模块
    spark-kafka-es交互 优化
    scala写文件
    python unittest
    scala collection(集合)
    spark-kafka-es交互
    scala语法
  • 原文地址:https://www.cnblogs.com/ives/p/fafctory_pattern.html
Copyright © 2011-2022 走看看