編寫的factory程式如下:
inte***ce fruit
public void eat()
}class orange implements fruit
}class factory
else if("orange".equals(classname))
else
}}public class main1
}
執行後的結果為:
分析:本程式在客戶端的操作上取消了關鍵字new的使用,而factory.getinftance()方法根據指定子類的標記取得介面的例項化物件,這時客戶端不需要關注具體的子類,也不需要關注factory類是怎麼處理的,只需要關注如何取得介面物件並且操作。這樣的設計在開發中就稱為工廠設計模式。
工廠設計模式。。應用
inte ce service inte ce servicefactory class product1 implements service class productfactory1 implements servicefactory class product2 implements ser...
使用工廠設計模式的場景
建立類物件雖然可以使用new 底層也是通過反射建立物件的 但是在一些情況下使用工廠模式確實最合適的。情況一 如果乙個物件擁有很多子類,那麼建立該物件的子類使用工廠模式是最合適的,不但可以面向介面的程式設計,為維護以及開發帶來方便。情況二 如果建立某個物件時需要進行許多額外的操作,如查詢資料庫然後將查...
介面與工廠(設計模式)
介面是實現多重繼承的途徑,而生成遵循某個介面物件的經典方式就是工廠方法設計模式。這種方式與直接呼叫建構函式的不同,我們在工廠物件呼叫的是建立方法,該工廠的方法將生成介面的某個實現類的物件。理論上,通過這種方式,我們的 將完全與介面的實現分離,這就使得我們可以透明地將某個實現替換為另乙個實現。下面我們...