java工廠設計模式基礎程式碼
阿新 • • 發佈:2019-01-02
package interface_text; interface Fruit{ public void eat(); } class Apple implements Fruit{ @Override public void eat() { System.out.println("+++吃蘋果"); } } class Orange implements Fruit{ @Override public void eat() { System.out.println("+++吃橙子"); } } class Factory{ public static Fruit getInstance(String className){ if("apple".equals(className)){ return new Apple(); } if("orange".equals(className)){ return new Orange(); } return null; } } public class FactoryDesign { public static void main(String[] args) { Fruit f = Factory.getInstance("apple"); f.eat(); } }
我們在設計程式時,使用者只關心他需求什麼,使用我們只需要給使用者展示介面,如例子:使用者只希望傳送吃水果的請求,只提供水果名稱,而不在乎你內部程式碼程式怎麼實現,所以我們需要通過使用者提供水果名稱直接實現使用者吃水果這一個方法,但是每次每個的使用者需求不同,但是我們要求不改變每次的程式碼,所以我們需要進行工廠設計模式來滿足要求,這樣便於後期程式的維護(只要改變Factory中的程式碼即可,不需要改動客戶端程式碼(main裡的)),例子裡就是一個最基礎的工廠設計模式:
1.先建立一個Fruit介面(interface)
2.接著建立Factory,內部定義一個static方法來返回我們需要的物件(Apple,Orange)
3.再建立我們需要的水果物件,繼承(implements) Fruit介面(即為Fruit的子類)
4.最後我們在主方法main()(實際開發的客戶端)建立一個Fruit物件呼叫Factory.getInstance()方法來實現我們需要的水果物件(Apple,Orange)
這樣我們就實現了最基本的java工廠設計模式的原始碼了。
以上是我個人的總結,如果認為我說的不夠具體,詳情也可以看下面的視訊: