专栏首页Nicky's blog设计模式之工厂方法模式(创建型)

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

一、模式定义

工厂方法模式:又称工厂模式,也叫虚拟构造器模式,属于构建型设计模式,工厂方法模式是在简单工厂模式上进行拓展,生产产品的过程由具体工厂类实现,基类只实现接口,这使得工厂方法模式可以在不修改工厂角色的情况下,引进新的产品。

工作方法模式也符合”开闭原则“。工厂方法模式也称虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式

二、模式结构

工厂方法模式包含如下结构:

Product:抽象产品

ConcreteProduct:具体产品

Factory:抽象工厂

ConcreteFactory:具体工厂

三、简单实例

抽象工厂类:

public abstract class PayMethodFactory
{
    public abstract AbstractPay getPayMethod();
}

具体工厂类:

public class CashPayFactory extends PayMethodFactory
{
    public AbstractPay getPayMethod()
    {
        return new CashPay();
    }
} 

客户端调用:

PayMethodFactory factory;
AbstractPay payMethod;
factory=new CashPayFactory();
payMethod =factory.getPayMethod();
payMethod.pay(); 

三种工厂方法对比:https://blog.csdn.net/u014427391/article/details/80067882

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 设计模式之3种工厂模式对比和简单介绍

    简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。

    SmileNicky
  • 设计模式之简单工厂模式(创建型)

    简单工厂模式又称静态工厂模式。可以根据参数的不同返回不同类的实例。定义一个类来创建其它类的实例。

    SmileNicky
  • 设计模式之装饰模式(结构型)

    装饰模式:装饰模式就是允许向一个现有的对象添加新的功能,同时又不改变其结构,装饰模式是一种对象结构型设计模式。

    SmileNicky
  • 23种设计模式-方法工厂模式

    – 工厂方法模式和简单工厂模式最大的不同在于,简单工厂模式只有一个(对于一个项目或者一个独立模块而言)工厂类,而工厂方法模式有一组实现了相同接口的工厂(用来生产...

    Python进击者
  • 23种设计模式之简单工厂

    今天我们正式学习23种设计模式之工厂模式,这个模式主要分为三类(简单工厂模式,工厂方法模式,抽象工厂模式),我会分章给大家讲解。

    Python进击者
  • 你真的会用简单工厂吗?

    在项目中经常会碰到工厂模式,不光在项目中有在阅读源码的时候也一定少不了工厂模式。在我们上上一篇文章分布式定时任务Quartz中创建触发器也是通过Quartz所提...

    乱敲代码
  • 初探Java设计模式1:创建型模式(工厂,单例等)

    转自https://javadoop.com/post/design-pattern

    Java技术江湖
  • 工厂模式理解了没有?

    Java3y
  • Spring Boot系列之环境搭建

    16年开始就在写Spring Boot相关的文章了,之前一直是在自己猿天地的博客上发布,今年开始维护公众号,大部分时间都在写新的文章。

    猿天地
  • 初探Java设计模式1:创建型模式(工厂,单例等)

    转自https://javadoop.com/post/design-pattern

    Java技术江湖

扫码关注云+社区

领取腾讯云代金券