Trong hướng dẫn này mình sẽ giới thiệu đến các bạn một trong những Pattern thuộc nhóm Structural Patterns [Mẫu thiết kế kiến trúc] đó là Adapter Pattern
Bài viết này đã được đăng tại freetuts. net , không được sao chép dưới mọi hình thức.
Ở bài viết này mình sẽ giới thiệu sơ qua các khái niệm về Adapter Pattern và cách phát triển nó như thế nào, sau đó sẽ thực hiện chương trình đơn giản với Adapter Pattern
Adapter Pattern là gì?
Adapter Pattern có chức năng điều chỉnh giao diện [giao diện] này sang giao diện khác. Nó hoạt động như một cầu nối giữa hai giao diện không liên quan, tương tự như máy quét hoạt động như một cầu nối giữa giấy và máy tính
Điều này giúp các lớp có giao diện khác nhau có thể giao tiếp với nhau thông qua một giao diện trung gian
Bài viết này đã được đăng tại [free tuts. bọc lưới]
Đơn giản chương trình với Adapter Pattern Java
Trình tạo giao diện là giao diện chung nhất, nó cung cấp một phương thức chấp nhận các loại tòa nhà và vị trí của nó
Người xây dựng. java
public interface Builder { public void build[String type, String location]; }
Giao diện AdvancedBuilder cung cấp hai phương thức đó là. xây dựngNhà chọc trời
AdvancedBuilder. java
public interface AdvancedBuilder { public void buildHouse[String location]; public void buildSkyscrapper[String location]; }
Tại đây chúng ta sẽ tạo một lớp HouseBuilder để thực thi giao diện AdvancedBuilder
NhàXây Dựng. java
public class HouseBuilder implements AdvancedBuilder { @Override public void buildHouse[String location] { System.out.println["Xây dựng một ngôi nhà nằm trong " + location + " khu vực!"]; } @Override public void buildSkyscrapper[String location] { } }
Cũng tương tự như vậy, chúng ta sẽ tạo thêm một lớp nữa đó là SkyscrapperBuilder
Tòa Nhà Chọc Trời. java
public class SkyscrapperBuilder implements AdvancedBuilder { @Override public void buildSkyscrapper[String location] { System.out.println["Xây dựng một tòa nhà chọc trời trong " + location + " khu vực!"]; } @Override public void buildHouse[String location] { } }
Ở đây có một phần bộ điều hợp để kết nối hai giao diện này
Bộ chuyển đổi Builder. java
public class BuilderAdapter implements Builder { AdvancedBuilder advancedBuilder; public BuilderAdapter[String type] { if[type.equalsIgnoreCase["Nhà"]] { advancedBuilder = new HouseBuilder[]; } else if[type.equalsIgnoreCase["Tòa nhà chọc trời"]] { advancedBuilder = new SkyscrapperBuilder[]; } } @Override public void build[String type, String location] { if[type.equalsIgnoreCase["Nhà"]] { advancedBuilder.buildHouse[location]; } else if[type.equalsIgnoreCase["Tòa nhà chọc trời"]] { advancedBuilder.buildSkyscrapper[location]; } } }
Khi Adapter hoạt động, chúng ta có thể sử dụng phương thức của các giao diện để xây dựng các loại tòa nhà
BuilderThực hiện. java
public class BuilderImplementation implements Builder { BuilderAdapter builderAdapter; @Override public void build[String type, String location] { if[type.equalsIgnoreCase["Nhà"] || type.equalsIgnoreCase["Tòa nhà chọc trời"]] { builderAdapter = new BuilderAdapter[type]; builderAdapter.build[type, location]; } else { System.out.println["Loại tòa nhà không hợp lệ."]; } } }
Cuối cùng chúng ta sẽ tạo một hàm Main để chạy chương trình
Chủ yếu. java
public class Main { public static void main[String[] args] { BuilderImplementation builderImpl = new BuilderImplementation[]; builderImpl.build["Nhà", "trung tâm"]; builderImpl.build["Tòa nhà chọc trời", "trung tâm thành phố"]; builderImpl.build["Tòa nhà chọc trời", "vùng ngoại ô"]; builderImpl.build["Khách sạn", "trung tâm thành phố"]; System.out.println["-------------------------------------------"]; System.out.println["Chương trình này được đăng tại Freetuts.net"]; } }
Kết quả sau khi chạy chương trình
Như vậy là chúng ta đã cùng nhau tìm hiểu Adapter Pattern là gì? . Chúc các bạn thực hiện thành công
Bộ điều hợp hoạt động như một trình bao bọc giữa hai đối tượng. Nó bắt các cuộc gọi cho một đối tượng và biến đổi chúng thành định dạng và giao diện mà đối tượng thứ hai có thể nhận ra
Tìm hiểu thêm về Bộ điều hợp
dẫn đường
giới thiệu
Ví dụ khái niệm
mục lục
đầu ra
Ví dụ thế giới thực
mục lục
đầu ra
phức tạp.
Phổ biến.
ví dụ sử dụng. Mẫu Adapter khá phổ biến trong mã PHP. Nó thường được sử dụng trong các hệ thống dựa trên một số mã kế thừa. Trong những trường hợp như vậy, Bộ điều hợp làm cho mã kế thừa hoạt động với các lớp hiện đại
Nhận biết. Bộ điều hợp có thể được nhận dạng bởi một hàm tạo lấy một thể hiện của một loại giao diện/trừu tượng khác. Khi bộ điều hợp nhận được lệnh 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 đó hướng lệnh gọi đến một hoặc một số phương thức của đối tượng được bao bọc.
Ví dụ khái niệm Ví dụ thế giới thực
Ví dụ khái niệm
Ví dụ này minh họa cấu trúc của mẫu thiết kế Bộ điều hợp và tập trung vào các câu hỏi sau
- Nó bao gồm những lớp nào?
- Các lớp này có vai trò gì?
- Các yếu tố của mẫu có liên quan với nhau theo cách nào?
Sau khi tìm hiểu về cấu trúc của mẫu, bạn sẽ dễ dàng nắm bắt ví dụ sau, dựa trên trường hợp sử dụng PHP trong thế giới thực