/ / Mẫu thiết kế bộ điều hợp là gì và bạn có thể sử dụng nó như thế nào?

Mẫu thiết kế bộ điều hợp là gì và bạn có thể sử dụng nó như thế nào?

Với sự phát triển của kiến ​​trúc hướng dịch vụ (SOA), ngày càng có nhiều tổ chức sử dụng dịch vụ của bên thứ ba cho hệ thống doanh nghiệp của họ. Các công ty này cần theo kịp môi trường kinh doanh thay đổi nhanh chóng, điều này có thể có nghĩa là từ bỏ dịch vụ của nhà cung cấp dịch vụ này để chuyển sang dịch vụ của nhà cung cấp dịch vụ khác.


Trong những trường hợp như vậy, kiến ​​trúc hiện tại của doanh nghiệp có thể không tương thích với kiến ​​trúc của nhà cung cấp mới. Thay vì lãng phí hàng tháng để viết lại mã doanh nghiệp để làm cho nó tương thích với phần mềm mới, doanh nghiệp có thể sử dụng mẫu thiết kế bộ điều hợp.


Mẫu thiết kế bộ điều hợp là gì?

Mẫu bộ điều hợp cho phép các lớp có giao diện không tương thích hoạt động cùng nhau. Nó thực hiện điều này bằng cách chuyển đổi giao diện của một lớp (hoặc phần mềm) hiện có thành giao diện mà khách hàng (hoặc dịch vụ) mong đợi. Có hai loại bộ điều hợp: bộ điều hợp đối tượng và bộ điều hợp lớp.

Bộ điều hợp đối tượng sử dụng thành phần để bọc bộ điều hợp bằng bộ điều hợp, tạo ra giao diện mà máy khách mong đợi một cách hiệu quả. Vì vậy, nếu khách hàng mong đợi một chuỗi, bộ điều hợp sẽ lấy một số nguyên (người được điều chỉnh) và cung cấp cho nó các đặc điểm của một chuỗi.

bộ điều hợp đối tượng

Sơ đồ lớp ở trên đại diện cho bộ điều hợp đối tượng. Các lớp bộ điều hợp thực hiện các giao diện mục tiêu, đạt được quyền truy cập hiệu quả vào tất cả các phương thức của giao diện. Sau đó, nó điều chỉnh một người thích nghi và kết thúc tốt đẹp đó người thích nghi với giao diện mục tiêu các phương pháp.

Bộ điều hợp lớp sử dụng nhiều kế thừa, trong đó lớp bộ điều hợp là lớp con của cả lớp thích ứng và lớp đích. Sơ đồ lớp bên dưới biểu thị bộ điều hợp lớp mà bạn có thể tự do sử dụng trong các ngôn ngữ lập trình hỗ trợ đa kế thừa.

Bộ điều hợp lớp

Triển khai Mẫu thiết kế bộ điều hợp trong Java

Ứng dụng này sẽ triển khai bộ điều hợp đối tượng. Ứng dụng mẫu này sẽ mô phỏng một tổ chức tài chính đang chuyển đổi từ việc sử dụng và xử lý thẻ tính phí sang thẻ tín dụng. Tổ chức này ban đầu sử dụng giao diện thẻ tính phí sau:

 public interface ChargeCard {
  public void monthlyBalance();
  public void lateFee();
  public void Annualfee();
}

Một loại thẻ tính phí phổ biến mà hệ thống của tổ chức này xử lý là thẻ mận:

 public class PlumCard implements ChargeCard {
  private int cardNo;
  private String customerName;
  private double balance;

  
  public PlumCard(int cardNo, String customerName, double balance) {
    this.cardNo = cardNo;
    this.customerName = customerName;
    this.balance = balance;
  }

  
  public int getCardNo() {
    return cardNo;
  }

  public void setCardNo(int cardNo) {
    this.cardNo = cardNo;
  }

  public String getCustomerName() {
    return customerName;
  }

  public void setCustomerName(String customerName) {
    this.customerName = customerName;
  }

  public double getBalance() {
    return balance;
  }

  public void setBalance(double balance) {
    this.balance = balance;
  }
   
  @Override
  public void monthlyBalance() {
    System.out.println("In January " + this.customerName + " spent " + this.balance);
  }

  @Override
  public void lateFee() {
    System.out.println(this.customerName + " monthly latefee is $80.00");
  }

  @Override
  public void Annualfee() {
    System.out.println(this.customerName + " annual fee is $200.00");
  }
}

Tổ chức tài chính này đang chuyển đổi sang thẻ tín dụng và loại bỏ dần thẻ tính phí, vì vậy một số khách hàng của họ hiện có thẻ tín dụng:

 public interface CreditCard {
  public void monthlyMinPayment();
  public void interest();
  public void Annualfee();
}

Hệ thống doanh nghiệp tổ chức tài chính hiện chỉ xử lý thẻ tín dụng vì hệ thống này đang tìm cách ngừng sử dụng thẻ tính phí trong năm tới. Nhưng hầu hết khách hàng của họ vẫn sử dụng thẻ tính phí. Vì vậy, các kỹ sư đã quyết định tốt nhất là triển khai một bộ chuyển đổi cho đến khi tất cả khách hàng của họ chuyển sang thẻ tín dụng.

 public class ChargeCardAdapter implements CreditCard {
  ChargeCard chargeCard;

  public ChargeCardAdapter(ChargeCard chargeCard) {
    this.chargeCard = chargeCard;
  }

  @Override
  public void monthlyMinPayment() {
    this.chargeCard.monthlyBalance();
  }

  @Override
  public void interest() {
    this.chargeCard.lateFee();
  }

  @Override
  public void Annualfee() {
    this.chargeCard.Annualfee();
  }
}

Lớp ChargeCardAdapter Java này triển khai giao diện Java của CreditCard. Nó điều chỉnh ChargeCard (người thích ứng), mang lại cho nó các đặc điểm của thẻ tín dụng. Ví dụ hệ thống sẽ xử lý lãi suất của thẻ tín dụng, đây là phí trả chậm của khách hàng thẻ tính chưa quy đổi.

Ưu điểm của việc sử dụng Mẫu bộ điều hợp

Ưu điểm chính của việc sử dụng mẫu bộ điều hợp là nó cho phép khách hàng sử dụng các dịch vụ, thư viện và tính năng mới mà không cần thay đổi mã của họ. Điều này thúc đẩy khả năng mở rộng ứng dụng.

Một ưu điểm khác là mô hình này cũng linh hoạt. Mẫu bộ điều hợp cung cấp hai phương thức triển khai: bộ điều hợp đối tượng và bộ điều hợp lớp.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *