首页 > 其他 > 详细

创建模式-工厂方法模式

时间:2020-03-28 16:39:27      阅读:52      评论:0      收藏:0      [点我收藏+]

意图:定义了一个创建对象的接口,但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。

工厂方法和简单工厂的区别:简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。相当于是一个工厂中有各种产品,这样工厂的职责较重,而且当产品类型过多时不利于系统的扩展维护。如果增加一类产品,必须修改工厂类的方法。而工厂方法提供了一个工厂接口,定义了许多工厂实现类来负责生产不同的产品,这样如果想要增加一类产品只需定义一个新的工厂实现类即可。且简单工厂返回产品的方法为static的,因为简单工厂不需要创建工厂实例,而工厂方法要创建工厂实例。

工厂模式的实际应用:

JDBC中Connection的创建
特定的Driver创建对应的connection。

 

Spring的Bean管理

 

实现

在简单工厂中,创建对象的是另一个类,而在工厂方法中,是由子类来创建对象。
下图中,Factory 有一个 doSomething() 方法,这个方法需要用到一个产品对象,这个产品对象由 factoryMethod() 方法创建。该方法是抽象的,需要由子类去实现。

 

Factory.java

public abstract class Factory {

    abstract public Product factoryMethod();

    public void doSomething() {

        Product product = factoryMethod();

        // do something with the product

    }

}

ConcreteFactory.java

public class ConcreteFactory extends Factory {

    public Product factoryMethod() {

        return new ConcreteProduct();

    }

}

BrickFactory.java

public class BrickFactory extends Factory {

    public Product factoryMethod() {

        return new Brick();

    }

}

SteelFactory.java

public class SteelFactory extends Factory {

    public Product factoryMethod() {

        return new Steel();

    }

}

参考链接:https://www.jianshu.com/p/c71e5b13b263

视频审核中.....后面上传

创建模式-工厂方法模式

原文:https://www.cnblogs.com/lyt96/p/12587876.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!