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模式,就是适配器模式,使两个原本没有关联的类结合一起使用. 平时我们会经常碰到这样的情况,有了两个现成的类,它们之间没有什么联系,但是我们现在既想用其中一个类的方法,同时也想用另外一个类 ...
随机推荐
- ElasticSearch refresh API
在 Elasticsearch 中,写入和打开一个新段的轻量的过程叫做 refresh . 默认情况下每个分片会每秒自动刷新一次.这就是为什么我们说 Elasticsearch 是 近 实时搜索: 文 ...
- MVC EasyUI 时间格式化
用 return Json(dr, JsonRequestBehavior.AllowGet); 会返回一个json 数据格式,在用 EasyUI 输出表格内容时会遇到时间输出不是我们想要的格式, ...
- Linux学习之三-Linux系统的一些重要配置文件
Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0 ...
- android-SQLite数据库MVC关联实例源码(三层架构)
前两天布置下了一个期末练习,其中的重点是两个表之间的SQLite关联操作. 拿到题目,首先需要建库和关联表,下面是代码. 我使用简单的表插入,将数据的提交卸载onCreate方法中,这样不会发生写在主 ...
- 用MyEclipse2016 CI版创建一个SpringBoot程序
之前先要在Eclipse里安装STS,步骤如下: 1.点击菜单Help->Install from Catalog 2.在弹出的对话框中点击Popular选项卡,在STS旁边点Install按钮 ...
- 系统封装 EasyBoot如何将WIN7安装版提取到光盘
1 将WIN7光盘中的文件提取到Easyboot根目录,注意不要autorun.inf和setup.exe这两个文件.我们这里的Easyboot已经有了一些其他东西(XP的安装版文件,PE的文件等等, ...
- linux 设置时间
1.图形界面里面点击右上角的 “时间” 2.设置,edit 找到china G8区 date发现还没有生效 3.reboot 重启才生效了
- Windows重装系统
本文主要针对那些不会重装系统windows的用户,虽然重装系统win7或win10很简单,但是还是有一些小白不明白如何安装新系统,也不清楚有几种安装方式.本教程现在就详细的讲讲利用U盘重装系统的具体步 ...
- Excel2007制作直方图和正态分布曲线图
对同一维度的数据分析数据分布范围及分布趋势,要通过制作直方图和正态分布曲线图体现. 例如:已知所有员工的日收入,分析员工收入分布情况(51.7,50.6,57.9,56.9,56.7,56.7,55. ...
- LinkedHashMap的实现讲解
http://www.cnblogs.com/hubingxu/archive/2012/02/21/2361281.html LinkedHashMap 是HashMap的一个子类,保存了记录的插入 ...