图解设计模式pdf_Android 设计模式

(2) 2024-08-27 16:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
图解设计模式pdf_Android 设计模式,希望能够帮助你!!!。

Adapter(适配器模式)

适配器模式用于填补现有程序和所需程序之间的差异

Adapter模式有以下两种

  • 类适配器模式(使用继承的适配器)
  • 对象适配器模式(使用委托的适配器)

类适配器模式(使用继承的适配器)

图解设计模式pdf_Android 设计模式_https://bianchenghao6.com/blog__第1张

Banner

//实际情况 public class Banner { private String string; public Banner(String string) { this.string = string; } public void showWithParen() { System.out.println("(" + string + ")"); } public void showWithAster() { System.out.println("*" + string + "*"); } }

PrintBanner(适配器)

public class PrintBanner extends Banner implements Print { public PrintBanner(String string) { super(string); } @Override public void printWeak() { showWithParen(); } @Override public void printStrong() { showWithAster(); } }

Print(需求)

public interface Print { public abstract void printWeak(); public abstract void printStrong(); }

对象适配器(使用委托的适配器)

图解设计模式pdf_Android 设计模式_https://bianchenghao6.com/blog__第2张

Paste_Image.png

Banner

public class Banner { private String string; public Banner(String string) { this.string = string; } public void showWithParen() { System.out.println("(" + string + ")"); } public void showWithAster() { System.out.println("*" + string + "*"); } }

PrintBanner(适配器)

//满足Target的需求 public class PrintBanner extends Print { private Banner banner; public PrintBanner(String string) { //super(string); this.banner = new Banner(string); } @Override public void printWeak() { banner.showWithParen(); } @Override public void printStrong() { banner.showWithAster(); } }

Print(需求,Target(对象))

//负责定义所需的方法 public abstract class Print { public abstract void printWeak(); public abstract void printStrong(); }

Main

//Main中不需要知道任何关于Banner的信息 public static void main(String[] args) { // write your code here Print p = new PrintBanner("Hello"); p.printWeak(); p.printStrong(); } }

什么时候使用Adapter模式

很多时候,我们并非从零开始编程,经常会用到现有的类,特别是当现有的类已经被充分测试过,我们更愿意将这些类作为组件复用,Adapter模式会对现有的类进行适配,生成新的类
使用Adapter可以在完全不改变现有代码的前提下使现有代码适配于新的接口

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复