编程中的设计模式之适配器模式

作者 : 开心源码 本文共1279个字,预计阅读时间需要4分钟 发布时间: 2022-05-14 共239人阅读
详情

适配器模式(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解压,如遇到无法解压的请联系管理员
开心源码网 » 编程中的设计模式之适配器模式

发表回复