博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php设计模式 - 适配器模式
阅读量:7226 次
发布时间:2019-06-29

本文共 1005 字,大约阅读时间需要 3 分钟。

  hot3.png

";    } public function store($key,$value)    { echo "OldCache store
";    } public function remove($key)    { echo "OldCache remove
";    } public function fetch($key)    { echo "OldCache fetch
";    }}interface Cacheable{ public function set($key,$value); public function get($key); public function del($key);}class OldCacheAdapter implements Cacheable{ private$_cache=null; public function __construct()    { $this->_cache = new OldCache();    } public function set($key,$value)    { return $this->_cache->store($key,$value);    } public function get($key)    { return $this->_cache->fetch($key);    } public function del($key)    { return $this->_cache->remove($key);    }}$objCache = new OldCacheAdapter();$objCache -> set("test",1);$objCache -> get("test");$objCache -> del("test",1);?>

 

适配器模式:将一个类(Oldcache)的接口转换成客户希望的另外一个接口(Cacheenable),使用原本不兼容的而不能在一起工作的那些类可以在一起工作。

 

通俗理解:亡羊补牢,需求变了,又添加功能了,又要重用之前的代码,怎么办?创建一个新类,对旧类进行封装,对方法进行重构,而不是去修改原来的类,达到适配新功能的效果。

转载于:https://my.oschina.net/shyl/blog/533099

你可能感兴趣的文章
Android 100+行实现本地跳一跳辅助(不需要连接电脑)
查看>>
位状态的使用
查看>>
面试技术题笔记
查看>>
Myth源码解析系列之一-项目简介
查看>>
JS易混淆的方法整理
查看>>
iOS下JS与OC互相调用(八)--Cordova详解+实战
查看>>
七牛实时音视频云视频连线demo(web部分)
查看>>
Netty源码分析(六):SelectedSelectionKeySetSelector
查看>>
forEach,for...of,map与asycn/await
查看>>
springboot 2 Hikari 多数据源配置问题(dataSourceClassName or jdbcUrl is required)
查看>>
Golang数据库编程之GORM模型定义与数据库迁移
查看>>
Oracle redo解析之-4、rowid的计算
查看>>
Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统
查看>>
java 颠倒整数
查看>>
Python入门教程100天:Day05-练习总结
查看>>
环境搭建,8种基本类型,Static,package和import,log4j
查看>>
即将到来的 Debian 10 Buster 发布版的新特点
查看>>
iOS 头部视图下拉变大
查看>>
Disruptor并发框架
查看>>
react-hooks 实现简单的评论list
查看>>