1. 程式人生 > >設計模式之工廠模式——簡單工廠

設計模式之工廠模式——簡單工廠

工廠模式是我們最常用的例項化物件模式了,是用工廠方法代替new操作的一種模式。著名的Jive論壇 ,就大量使用了工廠模式,工廠模式在Java程式系統可以說是隨處可見。

以鞋子為例

鞋子介面

public interface ShoesInterface {
    //實現了鞋子
    public void draw();
}

實現鞋子介面,有紅鞋子、黑鞋子
用輸出語句來代表其中操作

public class RedShoes implements ShoesInterface {
    @Override
    public void draw() {
        System.out.println("----紅色的鞋子----");
    }
}
public class BlackShoes implements ShoesInterface {
    @Override
    public void draw() {
        System.out.println("----黑色的鞋子-----");
    }
}

鞋子工廠,根據不同的key建立不同的鞋子(即例項化不同鞋子類)

public class ShoesFactory {
    public ShoesInterface getShoes(String key){
        if("red".equals(key)){
            return new RedShoes();
        }else if ("black".equals(key)){
            return  new BlackShoes();
        }
        return null;
    }
}

測試類

public class SunnyTest {

    public static void main(String[] args) {
    	//普通方法例項化紅鞋子類
        ShoesInterface red =new RedShoes();
        red.draw();
		//通過工廠模式
        ShoesFactory factory =new ShoesFactory();
        ShoesInterface red2 =factory.getShoes("red");
        red2.draw();
	}
}	

簡單工廠的優點/缺點:

  • 優點:簡單工廠模式能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。明確區分了各自的職責和權力,有利於整個軟體體系結構的優化。
  • 缺點:很明顯工廠類集中了所有例項的建立邏輯,容易違反GRASPR的高內聚的責任分配原則