Nội dung
Adapter là một mẫu thiết kế cấu trúc, cho phép các đối tượng không tương thích cộng tác.
Adapter hoạt động như một trình bao bọc giữa hai đối tượng. Nó bắt các lời gọi cho một đối tượng và chuyển đổi chúng sang định dạng và giao diện có thể nhận ra bởi đối tượng thứ hai.
Cách sử dụng mẫu
Sử dụng: Mẫu Adapter khá phổ biến trong chương trình C#. Nó rất thường được sử dụng trong các hệ thống dựa trên một số mã cũ. Trong những trường hợp như vậy, Adapter làm cho các mã cũ tương tác với các lớp hiện đại.
Nhận dạng: Adapter có thể nhận biết được bởi một phương thức khởi tạo lấy một thể hiện của một kiểu giao diện / trừu tượng khác. Khi adapter nhận được lời gọi đến bất kỳ phương thức nào của nó, nó sẽ dịch các tham số sang định dạng thích hợp và sau đó chuyển hướng lời gọi đến một hoặc một số phương thức của đối tượng được bao bọc.
Chương trình mẫu
Program.cs
using System;
namespace DesignPatterns.Adapter.Conceptual
{
// Target xác định giao diện cụ thể được client sử dụng.
public interface ITarget
{
string GetRequest();
}
// Adaptee chứa một số hành vi hữu ích, nhưng giao diện của nó không
// tương thích với client hiện có. Nó cần một số điều chỉnh trước khi
// client có thể sử dụng nó.
class Adaptee
{
public string GetSpecificRequest()
{
return "Specific request.";
}
}
// Adapter làm cho giao diện của Adaptee tương thích với giao diện
// của Target.
class Adapter : ITarget
{
private readonly Adaptee _adaptee;
public Adapter(Adaptee adaptee)
{
this._adaptee = adaptee;
}
public string GetRequest()
{
return $"This is '{this._adaptee.GetSpecificRequest()}'";
}
}
class Program
{
static void Main(string[] args)
{
Adaptee adaptee = new Adaptee();
ITarget target = new Adapter(adaptee);
Console.WriteLine("Adaptee interface is incompatible with the client.");
Console.WriteLine("But with adapter client can call it's method.");
Console.WriteLine(target.GetRequest());
}
}
}
Kết quả:
Adaptee interface is incompatible with the client.
But with adapter client can call it's method.
This is 'Specific request.'
Để lại một bình luận