• 工厂模式


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

    工厂模式: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

  • 相关阅读:
    大型高性能ASP.NET系统架构设计
    读写锁ReaderWriterLockSlim
    日常生活英语单词大全
    unity3d读取plist或xml文件
    WIN7开无线
    asp.net 2.0中新增的web.config的默认namespace功能 (转)
    面向对象的一些基本概念
    大话设计模式之策略模式
    大话设计模式之简单的工厂模式
    iOS UI 之UILable
  • 原文地址:https://www.cnblogs.com/ives/p/fafctory_pattern.html
Copyright © 2020-2023  润新知