Adapter Pattern, diễn giải về tư tưởng với ví dụng biểu thị quy mô thiết kế Adapter Pattern vào Java, trong PHP.. ...

Bạn đang xem: Adapter pattern là gì


Adapter Pattern - Mô hình thiết kế Adapter Pattern

Thiết kế theo Adapter Pattern được cho phép gửi đối interface của lớp này thành interface không giống mong ước.Mô hình xây dựng này đến pháp những lớp làm việc cùng nhau mà không biến thành xung bỗng dưng về interface. Adapter được cho phép sử dụng lại code mà chưa phải biến hóa.Để rõ hơn về Adapter Pattern coi ví dụ.

Xem thêm: Ai Đã Là Người Vượt Qua Bao Thăng Trầm, Ngoài Kia Bao La Sóng Gió

lấy một ví dụ diễn tả Adapter Pattern trong Java

interface ISendInformation public void send();class SendMail implements ISendInformation
Override public void send() System.out.println("Sover Email"); Xây dựng một tấm tên SaveStorage, mang sử để lưu lại thông báo vào đĩa

interface ISaveInformation public void save();class SaveStorage implements ISaveInformation
Override public void save() System.out.println("Save sầu khổng lồ Disk"); Vậy là có 2 lớp SendMail cùng SaveStorage, nếu như sử dụng riêng nhị lớp này thì không có vụ việc gì cả. Tuy nhiên cóvài trường thích hợp bạn lại hy vọng áp dụng tác dụng của SendMail (send) nhưng xử sự của nó lại giống SaveStorage (save).

Xem thêm: Sprint Backlog Là Gì ? Sprint Backlog Tổng Quan

lấy một ví dụ chúng ta tạo ra một tấm cách xử lý đơn hàng người dùng đặt lên trang web ví dụ điển hình, so với chấm dứt thì giữ tài liệu vàođĩa (hoặc db) bằng SaveStorage, có tác dụng lớp kia nhỏng sau:

class Order private String Data;//... những nhiều loại code khácpublic void processData(ISaveInformation iSaveInformation)iSaveInformation.save(Data);Trường thích hợp đơn giản sử dụng Order và SaveStorage nlỗi sau:

Order order = new Order("Dữ liệu mẫu mã ... String");//...SaveStorage saveStorage = new SaveStorage();order.processData(saveStorage);Một lúc làm sao kia, bạn lại ước ao Order cố gắng do giữ dữ liệu vào bát bởi SaveStorage,chúng ta lại ao ước nó gửi gmail tới thống trị bởi SendMail, mà lại lại không thích sửa một mẫu code như thế nào của Order, lúc này bạnthiết kế một lớp mà tác dụng của nó là SendMail, tuy vậy xử sự lại như SaveStorage để không hẳn xửa lại Order,làm được Việc này chính là chúng ta đã ứng dụng mô hình lập trình Adapter Patter

Tạo một tờ Adapter như sau

class SendMailAdapter implements ISaveInformation ISendInformation sendInformation; public SendMailAdapter(ISendInformation sendInformation) this.sendInformation = sendInformation;
Override public void save(String Data) sendInformation.send(Data); Quý Khách đã tạo thành một tấm, cơ mà xử sự của nó vẫn nhỏng SaveStorage (save), dẫu vậy này lại thực hiện chức năng củaSendMail (send). Quay lại ví dụ bên trên, bạn đã sở hữu thể thực hiện Order để gửi mail rứa vì ghi vào tô cơ mà mã củaOrder không trở nên sửa đổi.

Order order = new Order("Dữ liệu mẫu mã ... String");//...SendMail sendMail = new SendMail();SendMailAdapter adapter = new SendMailAdapter(sendMail);order.processData(adapter);

lấy ví dụ mô tả Adapter Pattern trong PHP

quý khách hàng convert code JAVA bên trên quý phái PHP

≶?phpinterface ISendInformation public function send($Data);class SendMail implements ISendInformation public function send($Data) emang đến "Sover Email"; interface ISaveInformation public function save($Data);class SaveStorage implements ISaveInformation public function save($Data) echo "Save to lớn Disk"; class SendMailAdapter implements ISaveInformation private $sendInformation; public function __construct($_sendInformation) $this->sendInformation = $_sendInformation; public function save($Data) $this->sendInformation->send($Data); class Order private $Data; public function __construct($Data) $this->Data = $Data; //... các các loại code khácpublic function processData($iSaveInformation) //... $iSaveInformation->save($this->Data); //Sử dụng CODE$order = new Order("Dữ liệu mẫu mã ... String");//...$sendMail = new SendMail();$adapter = new SendMailAdapter($sendMail);$order->processData($adapter);?>

*

Cấu trúc URI URN với URL Giao thức HTTP với cấu tạo cơ phiên bản của HTTP.. Message Ngulặng lý lập trình IoC Inversion of control (IoC) DI - Dependency Injection vào PHP Unix timestamp thay đổi thời gian Unix Biểu thức thiết yếu quy RegExp AOP Lập trình hướng góc cạnh Observer pattern - Mô hình lập trình Chủ thể - Quan tiếp giáp
Giới thiệuPrivacyTừ điển Anh - ViệtChạy SQLRegExpCubic-bezierUnix timestampKý từ HTMLcalories, chỉ số BMRchỉ số kân hận khung hình BMITạo QR CodeLịch vạn niên Liên hệ RSS
Đây là blog cá thể, tôi ghi chnghiền với share các gì tôi học tập được ở chỗ này về kỹ năng và kiến thức lập trình PHP.., Java, JavaScript, Android, C# ... cùng các kỹ năng và kiến thức công nghệ khácDeveloped by kulturbench.com


Chuyên mục: ĐỊNH NGHĨA
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *