发表时间:2015-05-27来源:网络
适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的(适配器模式要解决的核心问题)。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。
类图:

待适配(ForeignPlayer)角色:此角色的接口规则内部的接口规则不一致,但内部需要调用该角色的方法功能。
内部接口(IPlayer)角色:这是一个抽象角色,此角色给出内部期待的接口规则。
适配器(Adapter)角色:通过在内部包装一个Adapter对象,把待适配接口转换成目标接口,此角色为适配器模式的核心角色,也是适配器模式所解决问题的关键。
代码:
; } function Defense() { echo 前锋防御; }}/**中锋 * Class Center */class Center implements IPlayer{ function Attack() { echo 中锋攻击; } function Defense() { echo 中锋防御; }}//--------------待适配对象-----------/**姚明 外籍运动员 * Class Yaoming */class Yaoming{ function 进攻() { echo 姚明进攻; } function 防御() { echo 姚明防御; }}//------------适配器--------------/**适配器 * Class Adapter */class Adapter implements IPlayer{ private $_player; function __construct() { $this->_player=new Yaoming(); } function Attack() { $this->_player->进攻(); } function Defense() { $this->_player->防御(); }}
header(Content-Type:text/html;charset=utf-8);//------------------------原型模式测试代码------------------require_once ./Adapter/Adapter.php;$player1=new Forward();echo 前锋上场:;$player1->Attack();$player1->Defense();echo
适用场景
1.接口中规定了所有要实现的方法
2.但要有一个实现此接口的具体类,只用到了其中的几个方法,而其它的方法都是没有用的。
注意事项
1.充当适配器角色的类就是实现已有接口的抽象类
2.为什么要用抽象类:
此类是不要被实例化的。而只充当适配器的角色,也就为其子类提供了一个共同的接口,但其子类又可以将精力只集中在其感兴趣的地方。
上一篇:PHP设计模式――建造者模式
下一篇:PHP 编码规范
CI框架连接数据库配置操作以及多数据库操作
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
C语言关键字及其解释介绍 C语言32个关键字详解
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
PHP中的(++i)前缀自增 和 (i++)后缀自增
将视频设置为Android手机开机动画的教程
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
常用dos命令及语法
PHP中include和require区别之我见
溧阳论坛触屏版手机版下载v5.4.2.18 安卓版
68.37MB |生活服务
保利悠悦荟最新版app2026下载v3.1.6 安卓版
35.73MB |生活服务
i泰达官方版下载v2.0.10 安卓版
66.01MB |生活服务
与糖医护手机版下载v4.2.0 安卓版
46.54MB |生活服务
智慧宫翻译阿拉伯语手机版下载v1.91.0 安卓版
50.68MB |生活服务
专注清单app下载v15.9 安卓版
42.61MB |生活服务
物性表手机版下载v2.3.0 安卓版
71.12MB |商务办公
hooli留学公寓app下载v5.6.1 安卓官方版
28.64MB |生活服务
2014-09-05
2022-03-20
2022-03-21
2022-03-24
2014-09-05
2014-09-05
2015-07-05
2014-09-05
2022-03-21
2014-09-05