美文网首页
4.工厂方法模式

4.工厂方法模式

作者: 未知的证明 | 来源:发表于2019-04-30 09:49 被阅读0次

1、定义:

工厂父类用于创建生产产品对象的接口,工厂子类实例化产品对象。

2、模式结构:(把工厂角色继续划分)

(1)Factory(抽象工厂):模式的核心类,声明了工厂方法,返回一个产品。
(2)ConcreteFactory(具体工厂):实现抽象工厂中定义的方法,可由客户端调用,返回一个产品实例。
(3)Product(抽象产品):所有具体产品类的父类,提供公共的接口。
(4)ConcreteProduct(具体产品):继承抽象产品角色,实现其抽象方法。

3、案例分析:(还是生产电视机的问题)

(1)抽象产品类 TV

public interface TV  
{  
    public void play();  
}  

(2)具体产品类 HaierTV

public class HaierTV implements TV
{
    public void play()
    {
        System.out.println("海尔电视机播放中。。。");
    }
}

(3)具体产品类 MiTV

public class MiTV implements TV
{
    public void play()
    {
        System.out.println("小米电视机播放中。。。");
    }
}

(4)抽象工厂类 TVFactory

public interface TVFactory
{
    //工厂方法
     public TV produceTV();
}

(5)具体工厂类 HaierTVFactory

public class HaierTVFactory implements TVFactory
{
    public TV produceTV()
    {
        System.out.println("Haier工厂生产海尔电视机");
        return new HaierTV();
    }
}

(6)具体工厂类 MiTVFactory

public class MiTVFactory implements TVFactory
{
    public TV produceTV()
    {
        System.out.println("小米工厂生产小米电视机");
        return new MiTV();
    }
}

4、模式优缺点:

(1)优点:增加新产品类时无需修改现有系统,符合“开闭原则”;封装产品的创建细节 ,用户无需关注。
(2)缺点:增加新产品需要增加新的工厂类,增加了系统的复杂性。

5、模式应用:

(1)在Java 集合框架中的 List 和 Set 等集合都实现或继承 java.util.Connection 接口。该接口中的 iterator ()方法返回一个用于遍历集合的 Iterator 类型的对象,该方法就是工厂方法。listIterator () 方法用于返回一个具体的 Iterator 迭代器对象,是具体的工厂方法。
(2)在 JDBC 中创建 Connection 连接对象、Statement 语句对象和 ResultSet 结果集对象时都使用了工厂方法模式。代码片段如下:

Connection con = DriverManager.getConnection("......省略......");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from student");

相关文章

  • 《大话设计模式》-GoF的24种设计模式

    工厂方法模式 1. 单例模式 2. 简单工厂模式 3. 工厂模式 4. 建造者模式 5. 原型模式 6. 解释器模...

  • 38种Javascript设计模式

    38种设计模式 1.简单工厂模式 2.工厂方法模式 3.抽象工厂模式 4.建造者模式 5.原型模式 6.单例模式 ...

  • Java工厂模式详解--学习笔记

    目录1.概念2.角色3.工厂执行的具体流程简单工厂模式(静态工厂方法)工厂模式抽象工厂模式4.分类5.总结6.学习...

  • 2020-11.04-Scala-24(设计模式入门)

    1.简单工厂模式 2.工厂方法 3.抽象工厂模式 4.单例模式 5.装饰者模式 6.观察者模式 7.代理模式

  • Go 常用的设计模式

    1. 单例模式: 2. 简单工厂模式 3. 抽象工厂模式 它返回的是接口而不是结构体。 4. 工厂方法模式 5. ...

  • 工厂方法模式的简单分析

    1.工厂模式的定义2.工厂模式的使用场景3.工厂模式的优势4.工厂模式的实现工厂方法模式一般来说是定义一个用于创建...

  • 4.工厂方法模式

    1、定义: 工厂父类用于创建生产产品对象的接口,工厂子类实例化产品对象。 2、模式结构:(把工厂角色继续划分) (...

  • 设计模式-3种工厂模式

    工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

  • 设计模式-工厂模式

    工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

  • 设计模式-工厂方法模式

    1、工厂方法模式(Factory Method) 工厂方法模式分为三种: 普通工厂模式 多个工厂模式 静态工厂模式...

网友评论

      本文标题:4.工厂方法模式

      本文链接:https://www.haomeiwen.com/subject/tfkmnqtx.html