标签:png inter nbsp 东方 方法 ima TE 9.png php_eol
首先,业务场景如下:
1.本公司的设备管理平台(实现设备控制接口,有开关功能)
2.需要接入东方生态的设备管理平台(同样设备控制平台有开关功能,但是方法不一致)
业务需求如下:
全部用本公司的接口方法实现对设备的控制
UML图设备如下:
实现步骤如下:
1.写自己的设备接口
/** * 本公司自己的设备控制接口 * Interface Device */ interface Device { public function open(); public function close(); }
2. 写自己公司的设备管理类
/** * 本公司自己的设备管理类 * Class ZNZG */ class ZNZG implements Device { public function open() { echo ‘中农智冠设备启动<br/>‘; } public function close() { echo ‘中农智冠设备停止<br/>‘; } }
3.东方生态的设备管理类(方法与本公司的不一致)
/** * 东方生态的设备管理类 * Class DFST */ class DFST { public function start() { echo ‘东方生态设备启动‘,PHP_EOL; } public function stop() { echo ‘东方生态设备停止‘,PHP_EOL; } }
4. 写东方生态的设备适配器
/** * 东方生态的适配器 * Class AdapterDFST */ class AdapterDFST implements Device { private $obj; public function __construct(DFST $obj) { $this->obj = $obj; } public function open() { $this->obj->start(); } public function close() { $this->obj->stop(); } }
5. 实现代码如下:
$device = new ZNZG(); $device->open(); $device->close(); echo PHP_EOL,‘***********************华丽的分割线************************‘,PHP_EOL; $device = new AdapterDFST(new DFST()); $device->open(); $device->close();
6. 最终执行结果如下:
如果再要新接入一家公司的设备,也是一样的,需要增加一个适配器类,一个设备本身的控制类。
备注:
还可以再加入一个东方生态的设备控制接口,然后让东方生态的设备控制类实现自己公司的设备控制接口。这个就看具体需求了
标签:png inter nbsp 东方 方法 ima TE 9.png php_eol
原文地址:https://www.cnblogs.com/gspsuccess/p/9184531.html