2.设计模式---Adapter模式
Adapter模式也就是适配器模式,最常见的就是这个:码农必备--------------》笔记本电源适配器:

那么这玩意到底是干嘛的??
手工画图一张:

220V----------------------》11V这中间就需要适配器来适配,但是最后电脑也并不知道这中间到底怎么搞定的,他只明白他链接的是适配器,调用的是适配器,其他的就适配器在维护了!
适配器模式分2种:
1.类的继承
2.委托
先说第一种:
上代码后,在分析:
先上220V电压
package adapter.model;
/**
* 相当于小jie妹
* @author zengrong
*
*/
public class Banner {
private String name; public Banner(String name) {
super();
this.name = name;
} public void showwithParen() {
System.out.println("--特殊可爱小武器---"+name+"-----");
} public void showWithAster() {
System.out.println("---200块真不贵-"+name+"----");
}
}
再来电脑这端
package adapter.model;
/**
* 相当于你自己
* @author zengrong
*
*/
public interface Print {
/**
* 你的需求
*/
public abstract void printHow();
/**
* 一晚上how much
*/
public abstract void printOneNightHowMuch();
}
适配器:
package adapter.model;
/**
* 相当于小jie妹的"经济人"
* @author zengrong
* 小jie妹的经纪人肯定要知道小jie妹的想的啥,当然继承了就完全知道了。
* 经纪人为了给小jie妹接*,肯定要实现你的方法,来满足你的需求!
* 哈哈。。。。
*
*这是适配器模式中得:类继承的适配模式
*
*
*
*/
public class PrintBanner extends Banner implements Print { public PrintBanner(String name) {
super(name);
} @Override
public void printHow() { showWithAster();
} @Override
public void printOneNightHowMuch() {
showwithParen(); } }
main:
package adapter.main; import adapter.model.Print;
import adapter.model.PrintBanner; public class App {
public static void main(String[] args) {
Print banner = new PrintBanner("凤姐");
banner.printHow();
banner.printOneNightHowMuch();
}
}
结果:

--------------------------华丽分割线-------------------------------------------------------------------------------------------------------
适配模式----类继承:在这里,我们的适配器必须知道需要适配的一方,是适配的需求,不然也没办法完成适配!
--------------------------------------------------------------------------------------------------------------------------------------------------
适配器模式-----委托:相当于这种找小jie妹的事情我不好意思亲自出面,委托出去!
代码相似:
贴下:
package adapter.model;
/**
* 相当于小jie妹
* @author zengrong
*
*/
public class BannerTwo {
private String name; public BannerTwo(String name) {
super();
this.name = name;
} public void showwithParen() {
System.out.println("--特殊可爱小武器---"+name+"-----");
} public void showWithAster() {
System.out.println("---200块真不贵-"+name+"----");
}
}
package adapter.model;
/**
* 相当于小jie妹的"经济人"
* @author zengrong
* 小jie妹的经纪人肯定要知道小姐妹的想的啥,当然继承了就完全知道了。
* 经纪人为了给小jie妹接*,肯定要实现你的方法,来满足你的需求!
* 哈哈。。。。
*
*这是适配器模式中得:类继承的适配模式
*
*
*
*/
public class PrintBannerTwo extends PrintTwo { private BannerTwo Banner2; public PrintBannerTwo(String str) {
super();
this.Banner2=new BannerTwo(str);
} @Override
public void printHow() {
Banner2.showWithAster(); } @Override
public void printOneNightHowMuch() {
Banner2.showWithAster(); } }
package adapter.model;
public abstract class PrintTwo {
/**
* 你的需求
*/
public abstract void printHow();
/**
* 一晚上how much
*/
public abstract void printOneNightHowMuch();
}
适配器弥补了,类之间的缝隙,复用了其他类中得方法,这样也会减少编写多个类,
但是不是所有的类都要使用适配,例如2个完全功能不相同的完全没必要适配!
我们在代码的升级过程中,旧的代码和新的代码之间就可以使用适配来进行更新改造!
-----------------------------------------睡觉!!

2.设计模式---Adapter模式的更多相关文章
- java设计模式—Adapter模式
1.核心意图: 将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作. 该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adap ...
- 设计模式Adapter模式的五分钟
五分钟一个设计模式.来形容叙述的设计模式的最简单方法.看到许多其他设计模式,请点击五分钟一个设计模式系列 http://blog.csdn.net/daguanjia11/article/catego ...
- 设计模式--适配器(Adapter)模式
今天学习另一个设计模式,适配器(Adapter)模式,这是一个共同方向,但有特殊要求,就应用到此设计模式.写到这里,想起很久以前,有写过一篇<ASP.NET的适配器设计模式(Adapter)&g ...
- 设计模式之Adapter模式
说起Adapter,STL里的stack和queue都是adapter,底层是deque,隐藏了deque的一些接口,使得其可以达到FIFO是queue,LIFO是stack. The STL sta ...
- Java设计模式(9)适配器模式(Adapter模式)
适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用适配器模式 我们经常碰到要将两个没有关系的类组合在一起使用 ...
- 设计模式(二)Adapter模式
Adapter模式也被成为Wrapper模式.适配器模式用于填补“现有的程序”和“所需的程序”之间差异的设计模式. Adapter模式有两种,即使用继承的适配器和使用委托的适配器. 1.使用继承的适配 ...
- 一天一个设计模式——Adapter适配器模式(Wrapper模式)
一.模式说明 在现实生活中,当需要将两种设备连接起来,但是两个设备的接口规范又不一致(比如电脑上只有Type-C接口,但是你的显示器是HDMI接口),这时候就需要一个适配器,适配器一端连接电脑,一端连 ...
- 2、适配器 adapter 模式 加个"适配器" 以便于复用 结构型设计模式
1.什么是适配器模式? 适配器如同一个常见的变压器,也如同电脑的变压器和插线板之间的电源连接线,他们虽然都是3相的,但是电脑后面的插孔却不能直接插到插线板上. 如果想让额定工作电压是直流12伏特的笔记 ...
- 设计模式学习笔记-Adapter模式
Adapter模式,就是适配器模式,使两个原本没有关联的类结合一起使用. 平时我们会经常碰到这样的情况,有了两个现成的类,它们之间没有什么联系,但是我们现在既想用其中一个类的方法,同时也想用另外一个类 ...
随机推荐
- zabbix分组报警
生产上需要在出现报警情况下,不同的主机发送报警给不同的用户 下面实例为分组为dev(开发组)和ops(运维组) 1.把主机进行分组 创建主机群组 配置-->主机群组-->创建主机群组,创建 ...
- 2017.9.5 postgresql加密函数的使用
需要安装的插件的名字:pgcrypto 官网地址:https://www.postgresql.org/docs/9.4/static/pgcrypto.html stackoverflow: htt ...
- 转:100.64. 开头IP地址问题
100.64. 开头IP地址问题 姚洪楼 发表于 学习备忘录 分类,标签: 电信 08二月2015 0 之前调试过一个路由器在成功设置DDNS的情况下外网依旧无法访问的情况,当时没有多想什么,一直以为 ...
- Android学习(十七)自定义View控件 TopBar
一.创建自定义TopBar头部菜单条 实现步骤: 1.在values中添加attrs.xml文件,设置自定义属性. 2.添加Topbar类,继承RelativeLayout,实现具体功能. 3.添加到 ...
- Restful风格的前后端分离
1.概述 ResultFul推荐每个URL能操作具体的资源,而且能准确描述服务器对资源的处理动作,通常服务器对资源支持get/post/put/delete/等,用来实现资源的增删改查.前后端分离的话 ...
- 局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍(转)
局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍 本文主要介绍一种用于海量高维数据的近似最近邻快速查找技术——局部敏感哈希(Locality-Sensitive ...
- Fog of War小调研
看起来LOL和DOTA2都用的是格子来做的战争阴影,并且是用PP做的.
- Maven学习小结
简介:一款服务于Java的自动化构建工具 1 安装 必须已经安装了jdk且配置了环境变量,注意查看当前maven版本支持的jdk版本 配置Maven的环境变量 MAVEN_HOME PATH 使用mv ...
- 如何创建JAR文件?如何运行.jar形式的Java程序?
一.如何创建JAR文件? .jar是用来压缩档案或者解压档案的文件格式,其特点是具有无损压缩的功能.想知道如何创建这种程序?请访问 http://www.cnblogs.com/yjmyzz/p/ex ...
- ubuntu下设置静态ip
直接修改系统配置文件ubuntu的网络配置文件是:/etc/network/interfacesubuntu命令行修改网络配置方法前面auto eth?,让网卡开机自动挂载. 为网卡配置静态IP地址 ...