适配器模式也叫做包装模式;就是把内部结构包装(适配)成用户期待的格式,使得可以兼容使用
通过继承方式使用适配器模式
/** * @author maikec * @date 2019/5/9 */ public interface Print { /** * 打印带括号的消息 */ void printParen(); /** * 打印带*号的消息 */ void printAster(); } /** * 实际使用中的类 * @author maikec * @date 2019/5/9 */ public class Banner { private final String msg; public Banner(String msg){ this.msg = msg; } public void showWithParen(){ System.out.println( "(" + msg + ")" ); } public void showWithAster(){ System.out.println( "*" + msg + "*" ); } } /** * @author maikec * @date 2019/5/9 */ public class PrintBannerAdapter extends Banner implements Print { public PrintBannerAdapter(String msg) { super( msg ); } @Override public void printParen() { showWithParen(); } @Override public void printAster() { showWithAster(); } } /** * @author maikec * @date 2019/5/9 */ public class AdapterExtendDemo { public static void main(String[] args) { Print print = new PrintBannerAdapter( "hello adapter" ); print.printAster( ); print.printParen(); } } 复制代码
通过引用使用适配器模式
/** * 需求 * @author maikec * @date 2019/5/9 */ public abstract class Print { /** * 打印带括号的消息 */ public abstract void printParen(); /** * 打印带*号的消息 */ public abstract void printAster(); public void i(){ } } /** * 实际使用中的类 * @author maikec * @date 2019/5/9 */ public class Banner { private final String msg; public Banner(String msg){ this.msg = msg; } public void showWithParen(){ System.out.println( "(" + msg + ")" ); } public void showWithAster(){ System.out.println( "*" + msg + "*" ); } } /** * @author maikec * @date 2019/5/9 */ public class PrintBannerAdapter extends Print { private Banner banner; public PrintBannerAdapter(Banner banner){ this.banner = banner; } @Override public void printParen() { banner.showWithParen(); } @Override public void printAster() { banner.showWithAster(); } } /** * @author maikec * @date 2019/5/9 */ public class AdapterReferenceDemo { public static void main(String[] args) { Print print = new PrintBannerAdapter( new Banner( "Hello Adapter" ) ); print.printAster(); print.printParen(); } } 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 设计模式——订阅模式(观察者模式)
- 设计模式-简单工厂、工厂方法模式、抽象工厂模式
- java23种设计模式-门面模式(外观模式)
- 设计模式-享元设计模式
- Java 设计模式之工厂方法模式与抽象工厂模式
- JAVA设计模式之模板方法模式和建造者模式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
scikit learn机器学习
黄永昌 / 机械工业出版社 / 2018-3-1 / CNY 59.00
本书通过通俗易懂的语言、丰富的图示和生动的实例,拨开了笼罩在机器学习上方复杂的数学“乌云”,让读者以较低的代价和门槛轻松入门机器学习。本书共分为11章,主要介绍了在Python环境下学习scikit-learn机器学习框架的相关知识。本书涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法、线性回归算法、逻辑回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA ......一起来看看 《scikit learn机器学习》 这本书的介绍吧!