溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解java開發(fā)的工廠方法模式及抽象工廠驗證

發(fā)布時間:2021-10-11 10:04:55 來源:億速云 閱讀:119 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“如何理解java開發(fā)的工廠方法模式及抽象工廠驗證”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

目錄
  • 工廠方法模式示例

  • 抽象工廠模式驗證


工廠方法模式示例

開發(fā)一個數(shù)據(jù)格式轉(zhuǎn)換工具,將不同數(shù)據(jù)源如:txt、excel等格式文件,轉(zhuǎn)換為XML格式輸出,需考慮今后其他格式的文件也需要轉(zhuǎn)換為xml格式的擴(kuò)展性,利用設(shè)計模式的有關(guān)知識進(jìn)行設(shè)計。
解決思路,使用工廠方法模式完成該功能的設(shè)計,設(shè)計類圖如下:

如何理解java開發(fā)的工廠方法模式及抽象工廠驗證

代碼結(jié)構(gòu)如下:

如何理解java開發(fā)的工廠方法模式及抽象工廠驗證

代碼如下:

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轉(zhuǎn)換器");
    }
}
public class TxtConvertor implements Convertor {
    @Override
    public void transform() {
        System.out.println("txt文件轉(zhuǎn)換器");
    }
}

測試代碼如下:

public class Testor {
    public  void factoryMethodTest() {
        Creator creator = new TxtConvertorCreator();
        Convertor convertor = creator.getConvertor();
        convertor.transform();
    }
}

運(yùn)行結(jié)果:

如何理解java開發(fā)的工廠方法模式及抽象工廠驗證

驗證結(jié)論:使用工廠方法模式完成文件轉(zhuǎn)換器,滿足開閉原則,在類的劃分上滿足單一職責(zé)原則,使得程序易擴(kuò)展、易維護(hù)等特征;同時調(diào)用方依賴于抽象,不依賴于具體,實現(xiàn)了依賴倒置原則,所有的變量使用接口(抽象類)定義,具體的實現(xiàn)類可以替換它,遵循了里氏替換原則。

抽象工廠模式驗證

某公司開發(fā)一個手機(jī)游戲軟件,該軟件需要支持IOS、windows Mobile等操作系統(tǒng)平臺,針對不同操作系統(tǒng),提供不同操作控制類和游戲界面控制類,需考慮今后其他操作系統(tǒng)也需要使用這款手游,利用設(shè)計模式的有關(guān)知識進(jìn)行設(shè)計。
解決思路,使用抽象工廠模式完成該功能的設(shè)計,設(shè)計類圖如下:

如何理解java開發(fā)的工廠方法模式及抽象工廠驗證

代碼結(jié)構(gòu)如下:

如何理解java開發(fā)的工廠方法模式及抽象工廠驗證

代碼如下:

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();
    }
}

運(yùn)行結(jié)果如下:

如何理解java開發(fā)的工廠方法模式及抽象工廠驗證

驗證結(jié)論:抽象工廠模式與工廠方法模式很類似,工廠方法模式提供了一個生產(chǎn)對象的方法,而抽象工廠模式提供多個i生產(chǎn)不同對象的方法,此種設(shè)計符合開閉原則,程序易維護(hù)、易擴(kuò)展,如:該游戲系統(tǒng)需要在鴻蒙系統(tǒng)上運(yùn)行,則需要新開發(fā)一個具體的鴻蒙工廠,及與鴻蒙操作系統(tǒng)相關(guān)的界面控制類與游戲操作類即可。另外,需要注意的是,抽象工廠模式在擴(kuò)展產(chǎn)品族時很容易,但是在產(chǎn)品等級結(jié)構(gòu)發(fā)生變化時,非常不容易。

“如何理解java開發(fā)的工廠方法模式及抽象工廠驗證”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI