色色一区二区三区,一本大道道久久九九AV综合,国产香蕉97碰碰视频va碰碰看,综合亚洲国产2020

    <legend id="mljv4"><u id="mljv4"><blockquote id="mljv4"></blockquote></u></legend>

    <sub id="mljv4"><ol id="mljv4"><abbr id="mljv4"></abbr></ol></sub>
      <mark id="mljv4"></mark>

      當(dāng)多態(tài)性是&#x27;不可能時(shí)的良好設(shè)計(jì)

      2021-02-05 02:39

      I正在為實(shí)體組件系統(tǒng)開發(fā)可視化編輯器。編輯器必須能夠修改不同組件子類型的成員,因此每個(gè)組件子類型都有一個(gè)特定的窗口。問題是我們不能修改組件來實(shí)現(xiàn)多態(tài)方

      解答動(dòng)態(tài)

      • 問題是我們不能修改組件來實(shí)現(xiàn)多態(tài)方法來顯示正確的窗口,因?yàn)樗且粋(gè)外部庫。
        您可能無法修改組件,但您幾乎可以肯定地組合它們來產(chǎn)生相同的效果。偽代碼,適應(yīng)你的喜好語言:
        接口IComponent{void display();}類PositionComponent:IComponent{private Position}PositionComponent(Position p){u p=p;}void display(){new PositionEditorWindow(_p).display();}類VelocityComponent:IComponent{private Velocity}v;VelocityComponent(Velocity v){_v=v;}void display(){new VelocityEditorWindow(_v).display();}}} 您的編輯函數(shù)現(xiàn)在可以調(diào)用IComponent.
        上的display這當(dāng)然是facade的一個(gè)示例圖案:
        A子系統(tǒng)中一組接口的統(tǒng)一接口。Facade定義了一個(gè)更高級(jí)別的接口,使子系統(tǒng)更易于使用。這可用于將許多復(fù)雜的對(duì)象交互簡(jiǎn)化為單個(gè)接口。
        是的,您完全可以/應(yīng)該向facade添加更多功能,以表示組件可以執(zhí)行的其他操作。

        • End

        免責(zé)聲明:

        本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。