設計模式之工廠模式——簡單工廠
阿新 • • 發佈:2018-12-22
工廠模式是我們最常用的例項化物件模式了,是用工廠方法代替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的高內聚的責任分配原則