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

设计模式<工厂模式>

作者: 熬夜的猫头鹰 | 来源:发表于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
    
    

    相关文章

      网友评论

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

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