美文网首页
工厂方法设计模式

工厂方法设计模式

作者: one_mighty | 来源:发表于2018-01-26 11:41 被阅读0次

一、UML

工厂方法模式.png

二、基本步骤

2.1、工厂基本抽象类实现
2.2、产品基本抽象类实现
2.3、工厂业务实现
2.4、产品业务实现
2.5、工厂创建产品

三、实现方式

3.1、定义

抽象工厂类

/**
 * @author lizihanglove
 * @date 2018/1/15
 * @email one_mighty@163.com
 * @desc 工厂方法设计模式
 */

public abstract class Factory {

    public abstract <T extends Product> T createProduct(Class<T> product);
}

具体工厂方法类


/**
 * @author lizihanglove
 * @date 2018/1/15
 * @email one_mighty@163.com
 * @desc 具体工厂方法类
 */

public class ConcreteFactory extends Factory {
    @Override
    public <T extends Product> T createProduct(Class<T> product) {
        T newInstance = null;
        try {
            newInstance = product.newInstance();
            return newInstance;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

产品抽象类

/**
 * @author lizihanglove
 * @date 2018/1/15
 * @email one_mighty@163.com
 * @desc 产品抽象类
 */

public abstract class Product {

    public abstract void print();
}

具体产品类A


/**
 * @author lizihanglove
 * @date 2018/1/15
 * @email one_mighty@163.com
 * @desc 具体产品类A
 */

public class ProductA extends Product {
    @Override
    public void print() {
        System.out.println(this.getClass().getCanonicalName());
    }
}

具体产品类B

/**
 * @author lizihanglove
 * @date 2018/1/15
 * @email one_mighty@163.com
 * @desc 具体产品类B
 */

public class ProductB extends Product {
    @Override
    public void print() {
        System.out.println(this.getClass().getCanonicalName());
    }
}

3.2、调用
ConcreteFactory factory = new ConcreteFactory();
ProductA productA = factory.createProduct(ProductA.class);
productA.print();
ProductB productB = factory.createProduct(ProductB.class);
productB.print();
3.3、结果
System.out:website.lizihanglove.designpattern.patterns.java.factory.ProductA
System.out:website.lizihanglove.designpattern.patterns.java.factory.ProductB

相关文章

  • 2021-11-16 - 学习记录

    设计模式学习:创建型:工厂(工厂方法,抽象工厂),建造者,单例,原型 设计模式:工厂模式 简单工厂 工厂方法 抽象工厂

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 工厂模式

    工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

  • 设计模式之简单工厂、工厂方法、抽象工厂

    设计模式之简单工厂、工厂方法、抽象工厂 什么是设计模式? 设计模式(Design pattern)代表了最佳的实践...

  • PHP-浅谈单例模式和工厂模式

    PHP中常用的设计模式有单例模式、工厂模式(简单工厂模式、工厂方法模式和抽象工厂方法模式)、适配模式、策略模式。 ...

  • 大话设计模式之_工厂模式

    大话设计模式之_工厂模式 工程方法(即简单工厂模式simpleFactory,或静态工厂方法 static fac...

  • spring 设计模式篇(前)

    设计模式俗称:套路 一、spring常见设计模式 (23种设计模式) 创建型:工厂方法模式、抽象工厂模式、建造者...

  • 设计模式(六)抽象工厂模式

    导读:前文设计模式(五)工厂方法模式介绍了工厂方法模式,本篇开始介绍抽象工厂模式,继续优化工厂方法模式,更好的满足...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • 设计模式之工厂方法模式(创建型)

    一、模式定义 工厂方法模式:又称工厂模式,也叫虚拟构造器模式,属于构建型设计模式,工厂方法模式是在简单工厂模式上进...

网友评论

      本文标题:工厂方法设计模式

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