<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 概述 亦稱:調解人、控制器、Intermediary、Controller、Mediator **中介者模式**是一種行為設計模式,能讓你減少對象之間混亂無序的依賴關系。該模式會限制對象之間的直接交互,迫使它們通過一個中介者對象進行合作。 ## 中介者模式結構 ![](https://img.kancloud.cn/fb/b7/fbb7cc9e4f3d1f2789109629547aceef_1040x860.png) 1. 組件 (Component) 是各種包含業務邏輯的類。 每個組件都有一個指向中介者的引用, 該引用被聲明為中介者接口類型。 組件不知道中介者實際所屬的類, 因此你可通過將其連接到不同的中介者以使其能在其他程序中復用。 2. 中介者 (Mediator) 接口聲明了與組件交流的方法, 但通常僅包括一個通知方法。 組件可將任意上下文 (包括自己的對象) 作為該方法的參數, 只有這樣接收組件和發送者類之間才不會耦合。 3. 具體中介者 (Concrete Mediator) 封裝了多種組件間的關系。 具體中介者通常會保存所有組件的引用并對其進行管理, 甚至有時會對其生命周期進行管理。 4. 組件并不知道其他組件的情況。如果組件內發生了重要事件,它只能通知中介者。中介者收到通知后能輕易地確定發送者,這或許已足以判斷接下來需要觸發的組件了。 ## 適合應用場景 1. 當一些對象和其他對象緊密耦合以致難以對其進行修改時, 可使用中介者模式。 2. 當組件因過于依賴其他組件而無法在不同應用中復用時, 可使用中介者模式。 3. 如果為了能在不同情景下復用一些基本行為, 導致你需要被迫創建大量組件子類時, 可使用中介者模式。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看