本篇內容介紹了“如何理解java開發的工廠方法模式及抽象工廠驗證”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
工廠方法模式示例
抽象工廠模式驗證
開發一個數據格式轉換工具,將不同數據源如:txt、excel等格式文件,轉換為XML格式輸出,需考慮今后其他格式的文件也需要轉換為xml格式的擴展性,利用設計模式的有關知識進行設計。
解決思路,使用工廠方法模式完成該功能的設計,設計類圖如下:

代碼結構如下:

代碼如下:
public interface Creator {
Convertor getConvertor();
}
public class ExcelConvertorCreator implements Creator {
@Override
public Convertor getConvertor() {
return new ExcelConvertor();
}
}
public class TxtConvertorCreator implements Creator {
@Override
public Convertor getConvertor() {
return new TxtConvertor();
}
}
public interface Convertor {
void transform();
}
public class ExcelConvertor implements Convertor {
@Override
public void transform() {
System.out.println("excel轉換器");
}
}
public class TxtConvertor implements Convertor {
@Override
public void transform() {
System.out.println("txt文件轉換器");
}
}測試代碼如下:
public class Testor {
public void factoryMethodTest() {
Creator creator = new TxtConvertorCreator();
Convertor convertor = creator.getConvertor();
convertor.transform();
}
}運行結果:

驗證結論:使用工廠方法模式完成文件轉換器,滿足開閉原則,在類的劃分上滿足單一職責原則,使得程序易擴展、易維護等特征;同時調用方依賴于抽象,不依賴于具體,實現了依賴倒置原則,所有的變量使用接口(抽象類)定義,具體的實現類可以替換它,遵循了里氏替換原則。
某公司開發一個手機游戲軟件,該軟件需要支持IOS、windows Mobile等操作系統平臺,針對不同操作系統,提供不同操作控制類和游戲界面控制類,需考慮今后其他操作系統也需要使用這款手游,利用設計模式的有關知識進行設計。
解決思路,使用抽象工廠模式完成該功能的設計,設計類圖如下:

代碼結構如下:

代碼如下:
public interface InterfaceController {
void init();
}
public class IosInterfaceControllerImpl implements InterfaceController {
@Override
public void init() {
System.out.println("蘋果界面");
}
}
public class WinInterfaceControllerImpl implements InterfaceController {
@Override
public void init() {
System.out.println("windows界面");
}
}
public interface OprationController {
public void init();
}
public class IosOprationControllerImpl implements OprationController {
@Override
public void init() {
System.out.println("蘋果操作邏輯");
}
}
public class WinOprationControllerImpl implements OprationController {
@Override
public void init() {
System.out.println("windows操作邏輯");
}
}
public interface AbstractFactory {
InterfaceController getInterfaceContorller();
OprationController getOprationController();
}
public class IosFactoryImpl implements AbstractFactory {
@Override
public InterfaceController getInterfaceContorller() {
return new IosInterfaceControllerImpl();
}
@Override
public OprationController getOprationController() {
return new IosOprationControllerImpl();
}
}
public class WinFactoryImpl implements AbstractFactory {
@Override
public InterfaceController getInterfaceContorller() {
return new WinInterfaceControllerImpl();
}
@Override
public OprationController getOprationController() {
return new WinOprationControllerImpl();
}
}測試代碼如下:
public class AbstractFactoryTest {
public void test(){
AbstractFactory abstractFactory = new WinFactoryImpl();
OprationController oprationController = abstractFactory.getOprationController();
InterfaceController interfaceController = abstractFactory.getInterfaceContorller();
oprationController.init();
interfaceController.init();
}
}運行結果如下:

驗證結論:抽象工廠模式與工廠方法模式很類似,工廠方法模式提供了一個生產對象的方法,而抽象工廠模式提供多個i生產不同對象的方法,此種設計符合開閉原則,程序易維護、易擴展,如:該游戲系統需要在鴻蒙系統上運行,則需要新開發一個具體的鴻蒙工廠,及與鴻蒙操作系統相關的界面控制類與游戲操作類即可。另外,需要注意的是,抽象工廠模式在擴展產品族時很容易,但是在產品等級結構發生變化時,非常不容易。
“如何理解java開發的工廠方法模式及抽象工廠驗證”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。