1. 設計模式之 外觀模式

        共 2545字,需瀏覽 6分鐘

         ·

        2021-01-23 13:29

        0x01:外觀模式簡介

        外觀模式(又稱門面模式),通過外觀的包裝,使應用程序只能看到外觀對象,而不會看到具體的細節(jié)對象,這樣無疑會降低應用程序的復雜度,并且提高了程序的可維護性。UML類圖如下:

        其中Facade是外觀角色,也叫門面角色,客戶端可以調(diào)用這個角色的方法,此角色知曉子系統(tǒng)的所有功能和責任,將客戶端的請求代理給適當?shù)淖酉到y(tǒng)對象;

        Subsystem是子系統(tǒng)角色,可以同時擁有一個或多個子系統(tǒng),每一個子系統(tǒng)都不是一個單獨的類,而是一個類的集合,子系統(tǒng)并不知道門面的存在。


        0x02:外觀模式的實現(xiàn)

        • 定義子系統(tǒng)Subsystem

        public?class?SubSystemA?{

        ????public?void?dosomethingA()?{
        ????????System.out.println("SubSystemA?dosomethingA");
        ????}

        }

        public?class?SubSystemB?{

        ????public?void?dosomethingB()?{
        ????????System.out.println("SubSystemB?dosomethingB");
        ????}

        }
        • 外觀角色Facade

        public?class?Facade?{

        ????//被委托的對象
        ????private?SubSystemA?a;

        ????private?SubSystemB?b;

        ????public?Facade()?{
        ????????a?=?new?SubSystemA();
        ????????b?=?new?SubSystemB();
        ????}

        ????//提供給外部訪問的方法
        ????public?void?methodA()?{
        ????????this.a.dosomethingA();
        ????}

        ????public?void?methodB()?{
        ????????this.b.dosomethingB();
        ????}

        }
        • 測試代碼

        public?class?Client?{

        ????public?static?void?main(String[]?args)?{
        ????????Facade?facade?=?new?Facade();

        ????????facade.methodA();
        ????????facade.methodB();
        ????}

        }


        0x03:應用

        因為程序員薪資普遍相對較高,所以一般有些小錢。那如何進行財富管理呢?自己購買股票呢?又不能很好的掌握買賣點,經(jīng)常被人割韭菜。那還有什么管理財富的渠道嗎?購買基金就是一個不錯的渠道。

        • 股票、國債、期貨類

        public?class?Stock{

        ????//買股票
        ????public?void?buy()?{
        ????????System.out.println("股票1買入");
        ????}

        ????//賣股票
        ????public?void?sell()?{
        ????????System.out.println("股票1賣出");
        ????}

        }


        public?class?NationalDebt{

        ????//買國債
        ????public?void?buy()?{
        ????????System.out.println("國債1買入");
        ????}

        ????//賣國債
        ????public?void?sell()?{
        ????????System.out.println("國債1賣出");
        ????}

        }


        public?class?Futures{

        ????//買期貨
        ????public?void?buy()?{
        ????????System.out.println("期貨1買入");
        ????}

        ????//賣期貨
        ????public?void?sell()?{
        ????????System.out.println("期貨1賣出");
        ????}

        }


        • 基金類

        基金經(jīng)理人通過該類作為中間交互者,可以接受投資者的資金,統(tǒng)一對股票、國債、期貨進行購買和贖回操作。

        public?class?Fund?{

        ????private?Stock?stock;

        ????private?NationalDebt?nationalDebt;

        ????private?Futures?futures;

        ????public?Fund()?{
        ????????stock?=?new?Stock();?//配置30%
        ????????nationalDebt?=?new?NationalDebt();?//配置60%
        ????????futures?=?new?Futures();?//配置20%
        ????}

        ????//購買基金
        ????public?void?buyFund()?{
        ????????stock.buy();
        ????????nationalDebt.buy();
        ????????futures.buy();
        ????}

        ????//贖回基金
        ????public?void?sellFund()?{
        ????????stock.sell();
        ????????nationalDebt.sell();
        ????????futures.sell();
        ????}

        }

        上面這是一個基金,它配置了30%的股票+60%的國債+20%期貨。

        • 程序員購買和贖回基金操作

        public?class?Client?{

        ????public?static?void?main(String[]?args)?{
        ????????Fund?fund?=?new?Fund();
        ????????//基金購買
        ????????fund.buyFund();
        ????????System.out.println("》》》》》》》》》》》》");
        ????????//基金贖回
        ????????fund.sellFund();
        ????}

        }

        這樣的話,再也不怕炒股被割韭菜了。

        喜歡,在看+轉(zhuǎn)發(fā)


        瀏覽 37
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 最近中文字幕免费mv第一季歌词大全 | 操屄电影网站 | 天天撸夜夜撸 | 《巨乳女教师の诱惑》在线 | 国产一区二区大片 |