mediator là gì

Trước tiên, tất cả chúng ta hãy nằm trong cafedev ra mắt tất cả về Mediator design pattern và phần code ví dụ cụ thể nhằm mục đích canh ty ace dễ dàng nắm bắt Khi vận dụng bên trên những ngôn từ không giống nhau. Ace hoàn toàn có thể xem thêm tăng những bài bác không giống bên trên series Design Pattern bên trên trên đây.

Mediator design pattern là 1 trong trong mỗi behavioral design pattern cần thiết và được dùng thoáng rộng. Mediator được cho phép tách những đối tượng người tiêu dùng bằng phương pháp fake một tấm nhập thân thích nhằm sự tương tác trong số những đối tượng người tiêu dùng xẩy ra trải qua lớp. Nếu những đối tượng người tiêu dùng tương tác thẳng cùng nhau, những bộ phận khối hệ thống được phối hợp ngặt nghèo cùng nhau thực hiện mang đến ngân sách gia hạn cao hơn nữa và ko khó khăn nhằm không ngừng mở rộng. Mô hình hòa giải(Mediator) triệu tập nhập việc cung ứng một người hòa giải trong số những đối tượng người tiêu dùng nhằm tiếp xúc và trợ canh ty trong những công việc triển khai khớp nối mất mặt liên kết trong số những đối tượng người tiêu dùng.

Bạn đang xem: mediator là gì

Kiểm soát viên ko lưu là 1 trong ví dụ tuyệt hảo về quy mô trung gian trá nhập tê liệt chống trấn áp trường bay sinh hoạt như 1 trung gian trá nhằm liên hệ trong số những chuyến cất cánh không giống nhau. Mediator sinh hoạt như 1 cỗ ấn định tuyến trong số những đối tượng người tiêu dùng và nó hoàn toàn có thể đem logic riêng biệt nhằm cung ứng cơ hội tiếp xúc.

1. Mẫu kiến thiết Trình hòa giải Sơ vật dụng UML

Thành phần thiết kế

  • Mediator: Nó xác lập skin tiếp xúc trong số những đối tượng người tiêu dùng người cùng cơ quan.
  • ConcreteMediator: Nó triển khai skin hòa giải và điều phối tiếp xúc trong số những đối tượng người tiêu dùng người cùng cơ quan.
  • Đồng nghiệp: Nó xác lập skin tiếp xúc với những người cùng cơ quan khác
  • ConcreteColleague: Nó thực hiện skin người cùng cơ quan và tiếp xúc với những người cùng cơ quan không giống trải qua trung gian trá của nó

Hãy coi một ví dụ về kiểu kiến thiết Mediator.

Xem thêm: có nên rửa mặt sau khi đắp mặt nạ

class ATCMediator implements IATCMediator  
{ 
    private Flight flight; 
    private Runway runway; 
    public boolean land; 
  
    public void registerRunway(Runway runway)  
    { 
        this.runway = runway; 
    } 
  
    public void registerFlight(Flight flight)  
    { 
        this.flight = flight; 
    } 
  
    public boolean isLandingOk()  
    { 
        return land; 
    } 
  
    @Override
    public void setLandingStatus(boolean status)  
    { 
        land = status; 
    } 
} 
  
interface Command  
{ 
    void land(); 
} 
  
interface IATCMediator 
{ 
  
    public void registerRunway(Runway runway); 
  
    public void registerFlight(Flight flight); 
  
    public boolean isLandingOk(); 
  
    public void setLandingStatus(boolean status); 
} 
  
class Flight implements Command  
{ 
    private IATCMediator atcMediator; 
  
    public Flight(IATCMediator atcMediator)  
    { 
        this.atcMediator = atcMediator; 
    } 
  
    public void land()  
    { 
        if (atcMediator.isLandingOk())  
        { 
            System.out.println("Successfully Landed."); 
            atcMediator.setLandingStatus(true); 
        } 
        else
            System.out.println("Waiting for landing."); 
    } 
  
    public void getReady()  
    { 
        System.out.println("Ready for landing."); 
    } 
  
} 
  
class Runway implements Command  
{ 
    private IATCMediator atcMediator; 
  
    public Runway(IATCMediator atcMediator)  
    { 
        this.atcMediator = atcMediator; 
        atcMediator.setLandingStatus(true); 
    } 
  
    @Override
    public void land()  
    { 
        System.out.println("Landing permission granted."); 
        atcMediator.setLandingStatus(true); 
    } 
  
} 
  
class MediatorDesignPattern  
{ 
    public static void main(String args[])  
    { 
  
        IATCMediator atcMediator = new ATCMediator(); 
        Flight sparrow101 = new Flight(atcMediator); 
        Runway mainRunway = new Runway(atcMediator); 
        atcMediator.registerFlight(sparrow101); 
        atcMediator.registerRunway(mainRunway); 
        sparrow101.getReady(); 
        mainRunway.land(); 
        sparrow101.land(); 
          
    } 
} 

Đầu ra:

Ready for landing.
Landing permission granted.
Successfully Landed.

2. Lợi thế

  • Nó số lượng giới hạn phân lớp. Người hòa giải(Mediator) bạn dạng địa hóa hành động nhưng mà nếu như không sẽ tiến hành phân phối thân thích một vài đối tượng người tiêu dùng. Thay thay đổi hành động này chỉ đòi hỏi Mediator phân lớp con cái, những lớp Colleague hoàn toàn có thể được dùng lại vẹn toàn trạng.

3. Bất lợi

  • Nó triệu tập quyền trấn áp. Mô hình người hòa giải quy đổi cường độ phức tạp của tương tác trở nên cường độ phức tạp nhập người hòa giải. Bởi vì như thế một trung gian trá gói gọn những phú thức, nó hoàn toàn có thể trở thành phức tạp rộng lớn ngẫu nhiên người cùng cơ quan cá thể nào là. Như vậy hoàn toàn có thể khiến cho bạn dạng thân thích người hòa giải trở nên một khối vẹn toàn khối khó khăn duy trì

Cài phần mềm cafedev nhằm dễ dàng và đơn giản update tin yêu và học tập xây dựng mọi khi từng điểm bên trên trên đây.

Xem thêm: trà hoa hồng có tác dụng gì

Tài liệu kể từ cafedev:

  • Full series tự động học tập Design Pattern kể từ cơ bạn dạng cho tới nâng lên bên trên trên đây nha.
  • Các mối cung cấp kỹ năng MIỄN PHÍ VÔ GIÁ kể từ cafedev bên trên đây

Nếu các bạn thấy hoặc và hữu ích, bạn cũng có thể nhập cuộc những kênh sau của cafedev nhằm sẽ có được nhiều hơn thế nữa nữa:

  • Group Facebook
  • Fanpage
  • Youtube
  • Instagram
  • Twitter
  • Linkedin
  • Pinterest
  • Trang chủ

Chào thân thích ái và quyết thắng!