Tiếp tục với mẫu thiết kế adapter.
Nó là gì?
Mẫu adapter chuyển đổi giao diện thành một giao diện khác mà phù hợp với yêu cầu. Giúp kết nối các lớp có giao diện không tương thích để làm việc với nhau
Dùng nó trong trường hợp nào?.
Khi ta muốn chuyển đổi một lớp với một giao diện thành giao diện mà ta mong muốn.
Xậy dựng, mở rộng các phương thức của lớp có sẵn phù hợp với yêu cầu.
Tái sử dụng giao diện cũ. Giảm thiểu việc viết lại mã lệnh.
Tình Huống:
Thực tế : Có một công ty muốn mỏ rông công ty bằng cách chuyển địa điểm làm việc. Khi chuyển địa điểm thì có thêm các cơ sở mới.
Trong Java : giả sử ta đã có lớp với phương thức có sẵn để hiển thị 1 chuồi như sau ra màn hình: void ShowName (String str) với chuỗi đã được chuẩn hóa nhưng chương trình mới yêu cầu ta phải hiển thị một danh sách các chuỗi được chuẩn hóa với giao diện mới.
- Xử lí tình huống :
Tình huống 1) Có người để xuất ý kiến ta sẽ mua toàn bộ các cơ sở vật chất đề phù hợp với môi trường mới. Nhưng có một đề xuất khác là ta sẽ sử dụng lại các công cụ có sẵn của công từ và từ đó sẽ thêm các cơ sở vật chất mới phù hợp.
Tình huống 2) Một lập trình viên đề xuất , ta sẽ tạo một lớp hoàn toàn mới để ghi 1 danh sách chuỗi với phương thức để chuẩn hóa. Nhưng không, một lập trình viên khác nêu ý kiến: “Tôi có một giải pháp, tôi sẽ sử dụng mẫu chuyển đổi Adapter để tạo một lớp phù hợp từ lớp có sẵn”.
Tạo mẫu Adapter đầu tiên :
Đầu tiên lớp có sẵn của ta được mô tả với 1 interface:
- public interface IShowName {
- void showName(String name);
- }
- public class ShowName implements IShowName{
- @Override public void showName(String name){
- System.out.println(this.standardize(name));
- }
- public String standardize(String name){
- String resuilt = name.trim();
- return name;
- }
- }
- public interface IShowListName {
- void showListName(List
listName); }
Và một lớp thực thi interface :
- public class ShowListNameAdapter implements IShowListName{
- private ShowName shownName;
- public ShowListNameAdapter(ShowName shownName) {
- this.shownName = shownName;
- }
- @Override
- public void showListName(List
listName) { for (String name : listName) { shownName.showName(name); } } }
- public class TestAdapter {
- public static void main(String[] args) {
- ArrayList array = new ArrayList<>();
- array.add(" Teo ");
- array.add(" Ti ");
- array.add(" Ku ");
- IShowListName adapter = new ShowListNameAdapter(new ShowName());
- adapter.showListName(array);
- }
- }
Đây chỉ là một ví dụ nhỏ của Adapter pattern. Hy vọng bạn sẽ sớm có cái nhìn tổng quát và hiểu rõ thêm về Adapter pattern.
I think that you deserve compliments for your posts.They are really useful and intriguing.I'm trying to learn more knowledge and your articles are so useful for me.
ReplyDeletehttps://autoketing.com/project/sale-pop-master
https://apps.shopify.com/sales-pop-master, app autoketing
I am crazy about this blog. It's nice to see that some people still understand how to write a quality post!
ReplyDeleteProduct discount master app, Discount master, best autoketing app
I guess you are a smart cookie because of your knowledge and insight.After reading them, I get more information and knowledge.They contain pieces of advice. I think many people love and need them
ReplyDeletecurrency converter box online , currency converter box 2018 , autoketing
I am crazy about this blog. I just want to let you know that I just check out your site and I find it very interesting and informative. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts.
ReplyDeleteapp autoketing Shopify free shipping bar app shopify app free shipping bar
I have read all your articles.When I have spare time, I often read your posts.I want to enjoy more and more about your writing. I wish you best things in life.
ReplyDeletegame for kids Tomb Runner Splishy Fish free to play Mommy Elsa Baby Caring play for free
ReplyDeletefood games
basketball games online
soccer games play
I have read all your articles.When I have spare time, I often read your posts.I want to enjoy more and more about your writing. I wish you best things in life.
Pretty nice post. I just stumbled upon your blog and wished to say that I’ve truly enjoyed surfing around your blog posts. In any case I will be subscribing to your feed and I hope you write again soon!
ReplyDeleteio jogos for kids
play free 2 player game
friv free online juegos
If you desire to grow your know-how simply keep visiting this web page and be updated with the newest gossip posted here.
ReplyDeleteminiclip, a10 game play, Jogos online