创建型模式——工厂模式
生活随笔
收集整理的這篇文章主要介紹了
创建型模式——工厂模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、 實驗目的與要求
1.練習使用工廠模式。設計相關的模擬場景并進行實施,驗證模式特性,掌握其優缺點。
2.實驗結束后,對相關內容進行總結。
二、實驗內容
1.模式應用場景說明
作為一個青年人,最好的伙伴就是手機。而手機最重要的就是手機的CPU。兩家公司Huawei和Apple要尋找一個代工廠。但是由于光刻機數量不足,因此,同一時間只允許有一種類型的CPU進行生產。可以修改外部配置文件,可以控制不同的CPU的生產。
2.應用場景類圖
3.實現代碼與解釋
3.1抽象產品類
package 工廠模式; public interface CPU {public void play(); }3.2具體產品類HuaweiCPU
package 工廠模式;public class HuaweiCPU implements CPU {@Overridepublic void play() {System.out.println("Huawei的CPU生產中...");} }3.3具體產品類 AppleCPU
package 工廠模式;public class AppleCPU implements CPU {public void play() {System.out.println("Apple的CPU生產中...");} }3.4 抽象工廠類CPUFactory
package 工廠模式;public interface CPUFactory {public CPU produceCPU(); }3.5具體工廠類HuaweiFactory
package 工廠模式;public class HuaweiFactory implements CPUFactory {public CPU produceCPU() {System.out.println("華為手機工廠生產華為CPU");return new HuaweiCPU();} }3.6具體工廠類AppleFactory
package 工廠模式;public class AppleFactory implements CPUFactory{public CPU produceCPU() {System.out.println("蘋果手機工廠生產蘋果CPU");return new AppleCPU();} }3.7輔助代碼:獲取外界配置文件的信息
package 工廠模式; import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.SAXException; import java.io.*; public class XMLUtil { //該方法用于從XML配置文件中提取具體類類名,并返回一個實例對象public static Object getBean(){try{//創建文檔對象DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = dFactory.newDocumentBuilder();Document doc; doc = builder.parse(new File("C:\\Users\\33132\\Desktop\\工廠模式\\工廠模式\\src\\工廠模式\\config.xml")); //獲取包含類名的文本節點NodeList nl = doc.getElementsByTagName("className");Node classNode=nl.item(0).getFirstChild();String cName=classNode.getNodeValue();//通過類名生成實例對象并將其返回Class c=Class.forName("工廠模式."+cName);Object obj=c.newInstance();return obj;} catch(Exception e){e.printStackTrace();return null;}} }3.8外界配置文件
4.結果及分析
4.1將配置文件節點改成AppleFactory
4.2將配置文件節點改成HuaweiFactory
三、實驗總結
優點:可拓展性好,完全符合“開閉原則”。
缺點:由于考慮到系統的可拓展性,需要引入抽象層,增加了系統抽象性的理解難度。
總結
以上是生活随笔為你收集整理的创建型模式——工厂模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南昌工伤备案电话(南昌工伤备案)
- 下一篇: 创建型模式——抽象工厂模式