<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      中介者模式

      ?中介者(Mediator)模式屬于行為型模式的一種。

      中介者模式的目的是把多方會談變成雙方會談,從而實現多方的松耦合。用一個中介對象來封裝一系列的對象交互。這樣,系統中的各個對象不直接互相引用,而是通過中介者進行交互,從而降低了系統的耦合度。

      MVC模式以及MVVM模式都可以看作是中介者模式的擴展。中介者模式能減少對象之間混亂無序的依賴關系。類所擁有的依賴關系越少,就越易于修改、 擴展或復用。

      在真實世界中,飛機駕駛員不會直接相互溝通來決定哪一架飛機先降落,而是通過塔臺來進行溝通,此時的塔臺就是一個中介者對象。

      當多個類之間存在復雜的交互,而這些交互又不希望在各個類之間直接進行時;當系統中的對象之間需要有統一的協調,但不想讓這些對象直接依賴彼此時,都可以使用中介者模式。

      中介者模式通常有以下組成部分: 

      • Mediator(中介者接口):定義了一個接口,用于與多個同事對象進行交互。
      • ConcreteMediator(具體中介者):實現中介者接口,協調和管理多個同事對象的交互。
      • Colleague(同事類):所有同事類都知道中介者對象,它們通過中介者與其他同事類進行交互。
      • ConcreteColleague(具體同事類):每個具體同事類都向中介者發出請求并接收來自中介者的通知。

      我們模擬一個簡單的聊天室應用。聊天室相當于一個中介者。

      1、Mediator: 中介者接口

      // Mediator: 中介者接口
      interface ChatRoom {
          void sendMessage(String message, User user);
      }

      2、ConcreteMediator: 具體中介者

      // ConcreteMediator: 具體中介者
      class ConcreteChatRoom implements ChatRoom {
          @Override
          public void sendMessage(String message, User user) {
              System.out.println(user.getName() + " sends message: " + message);
              // 中介者通知所有其他用戶
              for (User u : users) {
                  if (u != user) {
                      u.receiveMessage(message);
                  }
              }
          }
      
          private List<User> users = new ArrayList<>();
          
          // 注冊用戶
          public void addUser(User user) {
              users.add(user);
          }
      }

      3、Colleague: 同事類

      // Colleague: 同事類
      abstract class User {
          protected ChatRoom chatRoom;
          protected String name;
      
          public User(ChatRoom chatRoom, String name) {
              this.chatRoom = chatRoom;
              this.name = name;
          }
      
          public String getName() {
              return name;
          }
      
          public abstract void sendMessage(String message);
          public abstract void receiveMessage(String message);
      }

      4、ConcreteColleague: 具體同事類

      // ConcreteColleague: 具體同事類
      class ConcreteUser extends User {
          public ConcreteUser(ChatRoom chatRoom, String name) {
              super(chatRoom, name);
          }
      
          @Override
          public void sendMessage(String message) {
              chatRoom.sendMessage(message, this);
          }
      
          @Override
          public void receiveMessage(String message) {
              System.out.println(name + " received: " + message);
          }
      }

      5、客戶端

      // 客戶端代碼
      public class MediatorPatternDemo {
          public static void main(String[] args) {
              ConcreteChatRoom chatRoom = new ConcreteChatRoom();
      
              User user1 = new ConcreteUser(chatRoom, "Alice");
              User user2 = new ConcreteUser(chatRoom, "Bob");
              User user3 = new ConcreteUser(chatRoom, "Charlie");
      
              chatRoom.addUser(user1);
              chatRoom.addUser(user2);
              chatRoom.addUser(user3);
      
              user1.sendMessage("Hi everyone!");
              user2.sendMessage("Hello Alice!");
          }
      }

      中介者模式的優缺點。

      優點:

      • 降低耦合度:通過將對象的交互邏輯集中到中介者中,減少了對象之間的直接依賴。
      • 易于擴展:如果需要添加新的同事類,只需讓其繼承User類并實現相關功能,而不需要修改其他對象的代碼。
      • 集中控制:所有交互邏輯都集中在中介者類中,便于管理和控制復雜的交互流程。

      缺點:

      • 中介者過于復雜:當系統中的對象過多時,中介者可能會變得非常復雜,甚至成為“上帝對象”。
      • 不適用所有場景:對于簡單的系統,使用中介者模式可能會過度設計,反而增加了不必要的復雜性。

      堅持往前走,不回頭、不放棄,冰封萬里也能走到春暖花開。-- 煙沙九洲

       
      posted @ 2025-02-06 23:35  煙沙九洲  閱讀(301)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产一区二区不卡在线看| 国产中文字幕一区二区| 国产精品进线69影院| 国产一区二区日韩在线| 日本丰满老妇bbb| 亚洲女同性同志熟女| 亚洲高清 一区二区三区| 日韩深夜视频在线观看| 久久老熟妇精品免费观看| jlzz大jlzz大全免费| 久久人人97超碰精品| 久久99精品久久久久久9 | 亚洲国产精品18久久久久久| 中文日产幕无线码一区中文| 国产国产成人精品久久蜜| 少妇被粗大的猛烈xx动态图| 人妻精品中文字幕av| 日韩成人无码影院| 麻豆精品一区二区三区蜜臀| 好吊妞人成视频在线观看| 一区二区中文字幕久久| 日韩中文字幕综合第二页| 欧美人与动牲交A免费观看| 免费无码一区无码东京热| 小污女小欲女导航| 永仁县| 不卡在线一区二区三区视频| 白嫩少妇激情无码| 综合偷自拍亚洲乱中文字幕 | 高清自拍亚洲精品二区| 国产精品午夜福利91| 99精品国产在热久久无| 国产精品毛片大码女人| 国产精品第一页一区二区| 鲁鲁网亚洲站内射污| 免费看黄片一区二区三区| 国产精品SM捆绑调教视频| 国产热の有码热の无码视频| 暖暖 免费 高清 日本 在线观看5| 欧美成人性色一区欧美成人性色区 | 日日摸夜夜添夜夜添国产三级|