资讯专栏INFORMATION COLUMN

设计模式——工厂方法

itvincent / 964人阅读

摘要:简介工厂方法是一种创建型模式,它定义一个创建对象的接口,让子类决定实例化哪一个类,可以使一个类的实例化延迟到其子类。类图是一个产品接口,是具体的产品,声明工厂方法,返回一个类型的对象,是具体工厂,定义了工厂方法,返回一个具体的。

1. 简介

  工厂方法是一种创建型模式,它定义一个创建对象的接口,让子类决定实例化哪一个类,可以使一个类的实例化延迟到其子类。它具有良好的扩展性,当有新产品类增加时,只需要新增一个具体的工厂类。调用者也不需要关心具体的产品及其创建过程,只需要知道它的接口。

2. UML类图

  Product是一个产品接口,ConcreteProduct是具体的产品,Creator声明工厂方法,返回一个Product类型的对象,ConcreteCreator是具体工厂,定义了工厂方法,返回一个具体的Product。

3. 实例

Product接口:

public interface Phone {
    void show();
}

具体产品:

public class IPhone implements Phone {
    public void show() {
        System.out.println("apple phone");
    }
}

public class Galaxy implements Phone {
    public void show() {
        System.out.println("samsung phone");
    }
}

抽象工厂:

public interface Creator {
    Phone createPhone();
}

具体工厂:

public class AppleCreator implements Creator {
    public Phone createPhone() {
        return new IPhone();
    }
}

public class SamsungCreator implements Creator {
    public Phone createPhone() {
        return new Galaxy();
    }
}

测试

public class Test {
    public static void main(String[] args) {
        Creator creator = new SamsungCreator();
        Phone phone = creator.createPhone();
        phone.show();
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76470.html

相关文章

  • JavaScript工厂模式

    摘要:基于工厂角色和产品角色的多态性设计是工厂方法模式的关键。工厂方法模式之所以又被称为多态工厂模式,是因为所有的具体工厂类都具有同一抽象父类。工厂方法模式总结工厂方法模式是简单工厂模式的进一步抽象和推广。 JavaScript工厂模式 首先需要说一下工厂模式。工厂模式根据抽象程度的不同分为三种 简单工厂模式 工厂方法模式 抽象工厂模式 1.简单工厂模式 简单工厂模式:又称为静态工厂方法...

    oujie 评论0 收藏0
  • 工厂模式-设计模式

    摘要:不过怎么来说工厂方法模式是简单工厂模式的升级版。其次,工厂模式是一种典型的解耦模式,迪米特法则在工厂模式中表现的尤为明显。 工厂模式想必大家在开发过程中会经常用到,顾名思义其就是作为一个工厂用来生产产品的,下面来简单介绍几种常见的工厂模式。 0x01 简单工厂模式 1、类图结构showImg(/img/bVFf1t?w=531&h=278); 2、角色分类 工厂类:其内部具有一点的判...

    HtmlCssJs 评论0 收藏0
  • Java 设计模式工厂模式

    摘要:与以往的使用的方式不同,工厂模式使用工厂实例化对象。抽象工厂模式亮相抽象工厂模式抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。 写在前面 这篇博文介绍设计模式的形式将与其他篇博文不太一样,这里我们将从一个问题入手,逐步了解到简单工厂、工厂方法与抽象工厂模式。 PS:这篇博文涉及的内容较多,所以篇幅有点长,请耐心阅读。 为什么要使用工厂模式? 在 OO ...

    Jochen 评论0 收藏0
  • 设计模式学习笔记:工厂模式

    摘要:二简单工厂模式组成工厂类工厂模式的核心,通过调用它来实现其他类的功能。三工厂方法模式利用工厂方法模式可以有效解决简单工厂模式破坏开闭原则的问题。 一、概念 1、工厂模式分为三类:(1)简单工厂模式:一个工厂创建所有产品(2)工厂方法模式:一个工厂方法创建一个产品(3)抽象工厂模式:一个工厂方法创建一类产品 2、创建型模式这种模式是指将实例的创建和使用分离开来,隐藏类实例的创建细节,外界...

    luxixing 评论0 收藏0
  • PHP高级特性-反射Reflection以及Factory工厂设计模式的结合使用[代码实例]

    摘要:反射提供给面向对象编程可以自省的能力,即反射。在简单工厂模式中,根据传递的参数来返回不同的类的实例简单工厂模式又称为静态工厂方法模式。也就是简单工厂模式工厂工厂类。PHP高级特性-反射以及工厂设计模式的结合使用 [结合 Laravel-Admin 代码实例讲解]利用反射来实现工厂模式的生产而无需创建特定的工厂类本文地址http://janrs.com/?p=833转载无需经过作者本人授权转载...

    番茄西红柿 评论0 收藏2637
  • Java设计模式-工厂模式

    摘要:一简单工厂定义简单工厂其实并不属于种设计模式之一,该模式是工厂方法模式的弱化或者说是工厂方法模式的一种特例,因为简单,所以称为简单工厂模式,也叫做静态工厂模式。 一、简单工厂 定义 简单工厂其实并不属于23种GOF设计模式之一,该模式是工厂方法模式的弱化(或者说是工厂方法模式的一种特例),因为简单,所以称为简单工厂模式(Simple Factory Pattern),也叫做静态工厂模式...

    Songlcy 评论0 收藏0

发表评论

0条评论

itvincent

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<