爱编程,爱生活

设计模式<工厂模式>

2018-06-16  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读