zoukankan      html  css  js  c++  java
  • 工厂模式(factory pattern) ------创造型模式

    创建型模式

    简单工厂模式的缺点是:

    当我们引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,需要修改工厂类的方法,违反了“开闭原则”。

    工厂模式提供了一个抽象工厂接口来声明抽象工厂方法,而由其子类来具体实现工厂方法,创建具体的产品对象。

    包含的四个角色:

    1、Product(抽象产品):它是定义产品的接口,是工厂方法模式所创建对象的超类行,也是产品对象的公共父类;

    2、ConcreteProduct(具体产品):它实现了抽象产品接口,某种类型的具体产品由专门的具体工厂创建,具体工厂和具体产品之间一一对应;

    3、Factory(抽象工厂):在抽象工厂类中,声明了工厂方法(Factory Method),用于返回一个产品。抽象工厂时工厂方法模式的核心,所有创建对象的工厂类都必须实现该接口;

    4、ConcreteFactory(具体工厂):它是抽象工厂类的子类,实现了抽象工厂中定义的工厂方法,并可由客户端调用,返回一个具体产品类的实例。

    主要优点:

    1、工厂模式中工厂方法用来创建客户端所需的产品,隐藏细节,甚至无需知道具体产品类的类名;

    2、基于工厂角色和产品角色的多态性设计是工厂方法模式的关键。它能让工厂可以自主确定创建何种产品,而创建对象的细节则封装在工厂的内部;

    3、加入新产品时无须修改抽象工厂和抽象产品提供的接口,无需修改客户端,也无需修改其它的具体工厂和具体产品,只要添加一个具体工厂和具体产品,符合“开闭原则”

    主要缺点:添加新产品时需要编写新的产品类,而且还要提供与之对应的具体工厂类,系统中类的个数将成对增加,在一定程度上增加了系统的复杂度。

  • 相关阅读:
    初学springMVC的拦截器
    jquery_EasyUI使用细节注意
    引进js文件运行在浏览器上调试报文件找不到
    Dreamweaver安装须知
    请求路径@PathVariable与请求参数@RequestParam的区别
    接口是否继承接口
    存储过程的学习
    webservice面试题
    哪些异常是RuntimeException?Sql异常属于RuntimeException吗?Spring下SQL异常事务回滚
    Trensient的使用介绍
  • 原文地址:https://www.cnblogs.com/openix/p/3170266.html
Copyright © 2011-2022 走看看