HomeĐời SốngAdapter pattern là gì

Adapter pattern là gì

08:48, 27/03/2021

Adapter Pattern, diễn giải về quan niệm với ví dụng biểu hiện quy mô lập trình Adapter Pattern trong Java, vào PHP ...

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


Adapter Pattern - Mô hình lập trình Adapter Pattern

Thiết kế theo Adapter Pattern chất nhận được đưa đối interface của lớp này thành interface khác mong ước.Mô hình kiến tạo này đến pháp những lớp thao tác làm việc cùng cả nhà cơ mà không trở nên xung bỗng dưng về interface. Adapter có thể chấp nhận được thực hiện lại code nhưng mà không hẳn đổi khác.Để rõ rộng về Adapter Pattern xem ví dụ.

Xem thêm: Các Diễn Viên Phim Cấp Ba Nổi Tiếng, Phim Cấp Ba

lấy 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("Skết thúc Email"); Xây dựng một tờ tên SaveStorage, mang sử để lưu lên tiếng vào đĩa

interface ISaveInformation public void save();class SaveStorage implements ISaveInformation
Override public void save() System.out.println("Save to lớn Disk"); Vậy là gồm 2 lớp SendMail với SaveStorage, trường hợp áp dụng riêng rẽ nhì lớp này thì không tồn tại vấn đề gì cả. Tuy nhiên cóvài ngôi trường hợp chúng ta lại mong sử dụng tác dụng của SendMail (send) nhưng xử sự của nó lại giống như SaveStorage (save).

Xem thêm: Nhan Sắc Các Hoa Hậu Việt Nam Qua Các Năm 1988, Hoa Hậu Việt Nam

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

class Order private String Data;//... các một số loại code khácpublic void processData(ISaveInformation iSaveInformation)iSaveInformation.save(Data);Trường phù hợp đơn giản thực hiện Order cùng SaveStorage như sau:

Order order = new Order("Dữ liệu chủng loại ... String");//...SaveStorage saveStorage = new SaveStorage();order.processData(saveStorage);Một dịp làm sao đó, bạn lại mong Order cầm cố vày lưu dữ liệu vào bát bởi SaveStorage,chúng ta lại ước ao nó gửi email tới quản lý bằng SendMail, tuy nhiên lại không muốn sửa một dòng code làm sao của Order, hôm nay bạnxây dựng một tấm cơ mà chức năng của chính nó là SendMail, nhưng mà xử sự lại nlỗi SaveStorage để không phải xửa lại Order,làm cho được câu hỏi này chính là các bạn đã vận dụng quy mô thiết kế Adapter Patter

Tạo một lớp Adapter nhỏng 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 hàng đã tạo thành một tờ, nhưng mà xử sự của chính nó vẫn như SaveStorage (save), tuy nhiên này lại thực hiện công dụng củaSendMail (send). Quay lại ví dụ trên, bạn đã có thể áp dụng Order để gửi mail nỗ lực vị ghi vào tô cơ mà mã củaOrder không biến thành sửa đổi.

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

lấy ví dụ như biểu đạt Adapter Pattern vào PHP

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

≶?phpinterface ISendInformation public function send($Data);class SendMail implements ISendInformation public function send($Data) eđến "Sover Email"; interface ISaveInformation public function save($Data);class SaveStorage implements ISaveInformation public function save($Data) eđến "Save to 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à URL Giao thức HTTP với cấu tạo cơ phiên bản của HTTP Message Nguyên ổn lý lập trình IoC Inversion of control (IoC) DI - Dependency Injection trong PHPhường Unix timestamp biến hóa thời hạn Unix Biểu thức chủ yếu quy RegExp AOP Lập trình hướng cẩn thận Obhệ thống pattern - Mô hình xây dựng Chủ thể - Quan sát
Giới thiệuPrivacyTừ điển Anh - ViệtChạy SQLRegExpCubic-bezierUnix timestampKý trường đoản cú HTMLcalories, chỉ số BMRchỉ số kăn năn khung hình BMITạo QR CodeLịch vạn niên Liên hệ RSS
Đây là blog cá nhân, tôi ghi chép với share đông đảo gì tôi học được tại chỗ này về kiến thức và kỹ năng lập trình PHPhường, Java, JavaScript, Android, C# ... với các kỹ năng công nghệ khácDeveloped by aiesec-unwe.net


Chuyên mục: Đời Sống