java 工厂设计模式

1、简单工厂模式

   简单工厂模式就是建立一个工厂类,对实现同一个接口的类进行实例化。其UML图以下:java

 

package com.hs.pattern.factory;

public interface Sender {

    public void send();
}


package com.hs.pattern.factory;

public class SmsSender implements Sender{

    @Override
    public void send() {
        
        System.out.println("短信发送");
    }

    
}


package com.hs.pattern.factory;

public class MailSender implements Sender {

    @Override
    public void send() {
        System.out.println("邮件发送");

    }

}

 

package com.hs.pattern.factory;

/**
 * 简单工厂模式
 * @author Administrator
 *
 */
public class SimpleSenderFactory {

    public static Sender produce( String sendType ){
        
        if( ("sms").equals(sendType) ){
            return new SmsSender();
        }else if ( ("mail").equals(sendType) ) {
            return new MailSender();
        }
        return null;
    }
    
}

 

2、工厂方法模式

   在工厂方法模式中,定义了一个用于建立对象的工厂接口,并根据工厂接口的实现类来肯定要实现哪一个产品。首先来看一下UML图:ide

工厂方法由四部分构成:spa

产品接口(Sender):用来定义产品的功能,工厂生产的全部产品对象都要实现该接口,调用者通常跟产品接口打交道。code

具体产品类(SmeSender、MailSender):实现了产品接口的类,是产品的具体实现细节。对象

工厂接口(Factory):工厂接口是工厂方法模式的核心接口,调用者直接与工厂接口交互,用于获取具体的产品实现类。blog

具体工厂类(SmsFactory、MailFactory):具体工厂类是工厂接口的实现类,用来实例化产品对象,不一样的具体工厂类会根据需求实例化不一样的产品实现类。接口

package com.hs.pattern.factory;

public interface Factory {

    public Sender produce();
}


package com.hs.pattern.factory;

public class SmsFactory implements Factory {

    @Override
    public Sender produce() {
       
        return new SmsSender();
    }

}


package com.hs.pattern.factory;

public class MailFactory implements Factory {

    @Override
    public Sender produce() {
        return new MailSender();
    }

}
相关文章
相关标签/搜索