一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java開發(fā)的工廠方法模式及抽象工廠驗(yàn)證示例

java開發(fā)的工廠方法模式及抽象工廠驗(yàn)證示例

2022-02-13 15:07guoyp2126 Java教程

這篇文章主要為大家介紹了java開發(fā)中的工廠方法模式以及抽象工廠的驗(yàn)證示例,有需要的朋友可以借鑒參考下希望能夠有所幫助祝大家多多進(jìn)步

 

工廠方法模式示例

開發(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ā)的工廠方法模式及抽象工廠驗(yàn)證示例

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

java開發(fā)的工廠方法模式及抽象工廠驗(yàn)證示例

代碼如下:

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ā)的工廠方法模式及抽象工廠驗(yàn)證示例

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

 

抽象工廠模式驗(yàn)證

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

java開發(fā)的工廠方法模式及抽象工廠驗(yàn)證示例

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

java開發(fā)的工廠方法模式及抽象工廠驗(yàn)證示例

代碼如下:

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ā)的工廠方法模式及抽象工廠驗(yàn)證示例

驗(yàn)證結(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ā)生變化時,非常不容易。

 

結(jié)論

以上僅給出示例代碼,非常簡單,為了加深工廠方法模式的體驗(yàn),建議大家開發(fā)完整的Txt、Excel文件轉(zhuǎn)換代碼,然后界面層設(shè)計兩個菜單,分別是Txt和Excel轉(zhuǎn)換。抽象工廠模式體驗(yàn),則可以查看jdk源碼中java.sql包數(shù)據(jù)庫處理部分源碼。

以上就是java開發(fā)的工廠方法模式及抽象工廠驗(yàn)證示例的詳細(xì)內(nèi)容,更多關(guān)于java工廠方法模式及抽象工廠驗(yàn)證的資料請關(guān)注服務(wù)器之家其它相關(guān)文章!

原文鏈接:https://blog.csdn.net/guoyp2126/article/details/120523338

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人愉拍精品 | 亚洲国产欧美在线人成aaaa20 | 青草青青在线视频 | 息与子中文字幕完整在线 | 麻麻与子乱肉小说怀孕 | 欧美一区二区三区免费看 | 天天色天天色天天色 | 成人免费观看一区二区 | 国产91页| 污污的动态图合集 | 奇米影视77777 | 日韩精品视频免费 | 国内自拍网红在综合图区 | 青青青国产精品国产精品久久久久 | 日韩欧美亚洲一区精选 | 天堂在线中文字幕 | 啪啪国产视频 | 青丝视频免费版在线看 | 99最新网址 | 亚洲天堂网站在线 | 亚洲国产区男人本色在线观看欧美 | 手机看片国产免费现在观看 | 精品国产无限资源免费观看 | 国产精品一区二区在线观看完整版 | 青青青国产 | 农夫69小说小雨与农村老太 | 黄色aaa级片| 亚洲高清中文字幕 | 久久免费资源福利资源站 | 欧美第十页 | 国产va欧美va在线观看 | 娇妻被老外疯狂调教 | 99成人国产精品视频 | 久久福利影院 | 男人与禽交的方法 | 99久久精品免费看国产 | 国产成人啪精品午夜在线播放 | 2020韩国三级理论在线观看 | 免费精品一区二区三区在线观看 | 男人操美女视频 | 99国产精品 |