美文网首页爱编程,爱生活
设计模式<工厂模式>

设计模式<工厂模式>

作者: 熬夜的猫头鹰 | 来源:发表于2018-06-16 21:36 被阅读5次

设计模式<工厂模式>

类图

意图

定义一个具有相同行为的接口A,建立一个工厂类,对实现了A接口的一些类进行实例的创建

优点

  • 一个调用者想创建一个对象,只要知道其名称就可以了。
  • 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。
  • 屏蔽产品的具体实现,调用者只关心产品的接口

缺点

每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事

实例JDK1.8

定义一个接口

public interface Sender {

    public void send();
}

创建实现类

public class EmailSender implements Sender {
    public void send() {
        System.err.println("i am a email sender");
    }
}

public class SmsSender implements Sender{

    public void send() {
        System.err.println("I am sms sender");
    }
}

创建工厂类


public class Factory {

    public Sender produce(String sender){
        if("sms".equals(sender)){
            return new SmsSender();

        }else if("email".equals(sender)){
            return new EmailSender();
        }else{
            System.err.println(String.format("没有此中发送方式[%s]",sender));
            return null;
        }
    }
}

测试类

public class DemoMain {

    public static void main(String[] args) {
        Factory fc = new Factory();
        Sender sender = fc.produce("sms");
        sender.send();

    }
}

consles输出

I am sms sender

相关文章

  • 设计模式<工厂模式>

    设计模式<工厂模式> 类图 意图 定义一个具有相同行为的接口A,建立一个工厂类,对实现了A接口的一些类进行实例的创...

  • 设计模式-工厂模式<二>

    今天来学习下工厂方法模式. 工厂方法模式与简单工厂模式最大区别在于,工厂方法抽象了一个定义生产产品的工厂接口,具体...

  • 设计模式-工厂模式<三>

    抽象模式就不具体介绍.主要要理解两个概念.(1) 产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机...

  • 设计模式-工厂模式<一>

    工厂模式 该模式实现了创建者和调用者的分离,它的核心思想是在实例化对象时,用工厂的方法代替new操作,将选择实现类...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

网友评论

    本文标题:设计模式<工厂模式>

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