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();
    }

}
相關文章
相關標籤/搜索