编程中的设计模式之适配器模式
详情
适配器模式(Adapter Pattern)是为理解决两个接口不兼容的,属于结构型模式,由单一的类来连接两个接口,实现功能的融合。
解决文件实例
现有两个文件解决类,一个是 Notepad 可以解决 php 文件,一个是 Phpstorm 除了可以解决 php 文件,还可以复查代码、使用Git,我们可以使用 Notepad 写 代码,phpstorm 执行其余操作,用户端只要要选择要执行的操作,假如 Notepad 无法执行,将由适配器调用 phpstorm 类完成操作。
<?phpinterface AdvancedIde{ public function codeGit(); public function codeReview();}class Phpstorm implements AdvancedIde{ public function codeGit() { return '写完可以使用Git版本控制系统升级代码'; } public function codeReview() { return '写完可以使用代码复查功能检查'; }}interface NormalIde{ public function write($afterSave);}class Notepad implements NormalIde{ public function write($afterSave) { $adapter = new NormalIdeAdapter(); $afterAction = $adapter->write($afterSave); echo 'IDE可以写代码,'.$afterAction; }}class NormalIdeAdapter implements NormalIde{ protected $ide; protected $notepad_action = ['write']; protected $phpstorm_action = ['git','review']; public function ideAdapter($ide) { return new $ide; } public function write($afterSave) { $this->ide = in_array($afterSave,$this->notepad_action) ? 'Notepad' : 'Phpstorm'; $ide = $this->ideAdapter($this->ide); $afterSaveAction = 'code' . $afterSave; return call_user_func([$ide,$afterSaveAction]); }}$normalIde = new Notepad();$normalIde->write('Review'); //复查代码$normalIde->write('Git'); //提交代码总结
适配器模式适合于已经运行的项目中,作为兼容不同接口的存在,可以方便的扩展原有接口实现功能的新添加,但适配器过多会使系统变得凌乱,由于从代码层面看调用的是A接口,内部被适配器改成了对B接口的实现,会影响代码的阅读和了解,所以对于类扩展最好的方式还是重构。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 编程中的设计模式之适配器模式
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 编程中的设计模式之适配器模式