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

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

hot3.png

/** * @author  v.r  And   *  * @example * 适配器 * 适配器设计模式只是将某个对象的接口适配为另一个对象所期望的接口     * 列子: * 以日志管理为例子 *  * @copyright copyright information *  */class errorObject{	private $error;	public function __construct($error)	{		$this->error = $error;	}	public function getError() 	{		return $this->error;	}}/** *  * @example *  输出日志到控制台 *    */class logToConsole {	private $errorObject;	public function __construct($errorObject)	{		$this->errorObject = $errorObject;	}    /**     * write() 方法中就随便你操作了,显示到控制器中     */	public function write() 	{        echo  "I write To Console : ".$this->errorObject->getError();	}}$error = new errorObject("404 Not Found");$log = new logToConsole($error);$log->write();echo "--------------------------------------------------------\n";/*** @example*  输出到CSV中*/class logToCSV {    	const CSV_LOCATION = 'log.csv';	private $errorObject;	public function __construct($errorObject)	{		$this->errorObject = $errorObject;	}	 /**     * write() 方法中      * 调用 errorObject类中      * getErrorNumber 方法     * getErrorText 方法     * 问题: errorObject中类中并没有此方法     */	public function write() 	{	        echo  "I write To CSV : \n";        echo  "errorNumber : " . $this->errorObject->getErrorNumber() ."\n";        echo  "errorText : " . $this->errorObject->getErrorText()."\n";	}}/** * @example * 适配器 */class logToCSVAdapter extends errorObject{	private $errorNo;	private $errorMsg;	public function __construct($error)	{		parent :: __construct($error);		$parts  = explode(':', $this->getError());		$this->errorNo = $parts[0];		$this->errorMsg =$parts[1]; 	}	public function getErrorNumber() {		return $this->errorNo;	}	public function getErrorText() {		return $this->errorMsg;	}}$error = new logToCSVAdapter("404 : Not Found");$log = new logToCSV($error);$log->write();echo "--------------------------------------------------------\n";

转载于:https://my.oschina.net/u/1246814/blog/512323

你可能感兴趣的文章
AngularJs入门(二)
查看>>
整数转为罗马数字
查看>>
POJ2367 Genealogical tree(拓扑排序)
查看>>
GO语言总结(4)——映射(Map)
查看>>
[题解]UVA10129 Play on Words
查看>>
docker
查看>>
css使图片变成黑白效果
查看>>
软件需求十步走读书笔记3
查看>>
电信SMS短信SOAP发送格式(C#手工组成.)
查看>>
Nginx配置之rewrite、proxy_pass、upstream、location
查看>>
c#学习笔记线程
查看>>
Android批量图片加载经典系列——afinal框架实现图片的异步缓存加载
查看>>
CentOS7 Failed to start LSB: Bring up/down解决方法
查看>>
文件下载(初学)
查看>>
有关Stolz定理的推广和应用(吕文斌)
查看>>
解析函数论 Page 22 达朗贝尔判别法 VS 柯西判别法
查看>>
Emacs+$\LaTeX$ 帮你写数学文章
查看>>
reportConfig.xml两种数据源连接的配置方式
查看>>
BFS POJ 3278 Catch That Cow
查看>>
Unreal Engine 4 优化教程
查看>>