<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          設計模式之 外觀模式

          共 2545字,需瀏覽 6分鐘

           ·

          2021-01-23 13:29

          0x01:外觀模式簡介

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

          其中Facade是外觀角色,也叫門面角色,客戶端可以調用這個角色的方法,此角色知曉子系統(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:應用

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

          • 股票、國債、期貨類

          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賣出");
          ????}

          }


          • 基金類

          基金經理人通過該類作為中間交互者,可以接受投資者的資金,統(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();
          ????}

          }

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

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


          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  超碰国产免费 | 无码秘 人妻一区二区三-百度 | 无码av人| 日韩一级特别 | 色情网站在线 |