文档章节

适配器模式

zj_oschina
 zj_oschina
发布于 2014/01/29 17:25
字数 297
阅读 228
收藏 7

image

第一种是对象适配器模式

第二种是类适配器模式

区别在于对象模式是通过关联的方式将适配器及被适配者联系起来,而类模式则是通过继承的方式。

    普遍使用的是对象适配器模式,因为啥呢,我认为对象模式相对于类模式来得灵活,特别是JAVA这类不能继承多类的语言,如果你的适配器只是适配一种被适配对象,那这两种没啥差,但是如果你想让适配器同时适配多种被适配对象的话,通过关联方式的优势就体现出来了,直接将适配器与那些被适配的对象关联在一起就OK了,这样你的适配器就可以是个万能充,充啥都没问题。

    简单一句话,如果你做的充电器(适配器)只能充你自己的手机(被适配者),那两种都可以用。如果你想做的是万能充(适配器),那就用对象适配器模式。(PS:针对JAVA等不能继承多类的语言)

© 著作权归作者所有

共有 人打赏支持
zj_oschina
粉丝 1
博文 52
码字总数 11831
作品 0
厦门
程序员
编程中的那些套路——关于策略模式

该文章属于《编程中的那些经典套路——设计模式汇总》系列,并且以下内容基于语言PHP 今天讲讲策略模式,策略模式 和工厂模式十分相像(或者说在代码逻辑层面,他们是一样的)。 但策略模式与...

gzchen
08/27
0
0
javascript 设计模式之工厂(Factory)模式

工厂模式介绍 工厂模式是一个创建型的模式,主要就是创建对象。其中工厂模式又分为简单工厂模式和抽象工厂模式。简单工厂模式是通过工厂方法确定创建 对应类型的对象。抽象工厂模式是通过子类...

hlxiong
2014/04/14
0
0
java设计模式-- 单例模式

在很久之前,也就是在大二暑假的时候,那时候看马士兵的视频教程中有提到很多的设计模式。 java的设计模式大致可以分为3大类,23种设计模式。 其中,创建型模式有5种:单例模式、建造者模式、...

爱学习的逃课君
2014/11/27
0
0
【设计模式笔记】(十六)- 代理模式

一、简述 代理模式(Proxy Pattern),为其他对象提供一个代理,并由代理对象控制原有对象的引用;也称为委托模式。 其实代理模式无论是在日常开发还是设计模式中,基本随处可见,中介者模式中...

MrTrying
06/24
0
0
代理模式(Proxy Pattern):动态代理 - 最易懂的设计模式解析

前言 今天我来全面总结开发中最常用的设计模式 - 代理模式中的动态代理模式 其他设计模式介绍 1分钟全面了解“设计模式” 单例模式(Singleton) - 最易懂的设计模式解析 简单工厂模式(Sim...

Carson_Ho
04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

怎样使用主流缓存更新策略来减少性能消耗?

在互联网项目开发中,缓存的应用是非常普遍了,缓存可以帮助页面提高加载速度,减少服务器或数据源的负载。 一、为什么需要缓存? 一般在项目中,最消耗性能的地方就是后端服务的数据库了。而...

Java干货分享
9分钟前
1
0
杭州云栖大会阿里云放大招,8K远程医疗会诊引关注

大家每天都会照镜子,镜子里的一切都清清楚楚,足可乱真,可是你想过有一天看视频直播就像照镜子么? 这不,在云栖大会的C馆里,8K超高清直播体验馆前异常火爆,在这里,很多参会者都围着有1...

阿里云云栖社区
11分钟前
15
0
C++获取系统盘符极简方法

盘符获取 std::shared_ptr<std::list<wchar_t>> disks(void) {wchar_t data[255];return [&](int length)->std::shared_ptr<std::list<wchar_t>> {auto result = std::make_shared< s......

CHONGCHEN
11分钟前
1
0
Python 操作samba文件服务器

# /usr/bin/env python# -*- coding:utf-8 -*-from smb.SMBConnection import SMBConnectionconn = SMBConnection('root', '123456', 'any', '', use_ntlm_v2 = True)assert conn.......

China丶小可
18分钟前
1
0
vue引入echart.js打包时特别大

link : https://www.cnblogs.com/strinkbug/p/5786222.html 一、i在html中添加script标签如下: <script src="//cdn.bootcss.com/echarts/3.2.2/echarts.simple.min.js"></script> 二、在web......

Js_Mei
22分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部