精彩评论
ytg3114(2周前 (01-04))
评:伪元素“::after”和“::before”的作用分别是什么_html5教程,伪元素,::after,::before少时诵诗书所
ytg3114(10个月前 (04-05))
:smile:
评:如何利用css实现放大缩小关闭效果_html5教程,css
学习PHP-cli 模式在终端输出彩色标记文字以及动态内容_php教程
文字的各种效果标记写法有多种,本文从php模式学习在终端输出彩色标记文字以及动态内容,干货多多,希望和大家学习讨论。
假如需要去国外旅游,游玩,现在电子产品很丰富,但是每个电子产品都是需要电源来做驱动,手机,电脑,相机。。。但是又有一个很显示的问题,电子产品是
很消耗电量的,电量没有了,就需要充电,在我们国家,我们买的电子产品出场带的电源充电器,一般都是220V的电压,但是世界很大,每个国家的要求(规定)
又是不同的,比如美国就是120V
将一个类的接口转换为另外一种接口,让原本接口不兼容的类可以兼容。
用户调用适配器转化出来的目标接口方法,适配器再去调用被适配者的相关接口方法
用户是看不到被适配者,属于解耦的操作
适配器模式属于结构型的设计模式
适配器模式的三种实现方式:
一、 类适配器
认识在 macOS 下使用 PHP-version 切换 PHP 版本的方法_php教程
使用【valet use php@version】所以使用valet搭环境的小伙伴看这里,大家都会看文档不仔细的情况,以前只大致学了valet的基本使用,如果看文档仔细点,就能少花这小半天时间了,一起学习吧。
根据上面的UML图,我们可以看出,需要一个美国电压的接口UsaInterface
,一个适配器类Adapter
,一个中国电压的接口Chine
,一个使用者Computer
,
在这里,中国电压就是被适配者,美国电压是最后的输出(目标),就是是配置者
interface UsaInterface{ public function outPut5V();}class China{ private $voltage = 220; public function outPut220V() { return $this->voltage; }}class Adapter extends China implements UsaInterface{ public function outPut5V() { // TODO: Implement outPut5V() method. $chinaVoltage = $this->outPut220V(); return $chinaVoltage / 2 + 10 . "V"; }}class Computer{ public function index(UsaInterface $usa) { if ($usa->outPut5V() === "120V") { printf("可以在美国使用中国的电源插头给电脑充电了"); } else { printf("不可以在美国使用中国的电源插头给电脑充电了"); } }}class Client{ public function __construct() { $adapter = new Adapter(); $computer = new Computer(); $computer->index($adapter); }}
二、对象适配器模式
对象适配器其实就是在类适配器的模式上做了一个调整,让适配器类Adapter
不去继承被适配者的类,而是让它们组合在一起,这样就可以增加了使用的灵活
度,也不会暴露被适配者的很多方法(使用关联关系来代替继承关系【合成复用原则】)。同时,没有继承就没有办法去覆盖父类的方法重写了,也算是有好有坏吧。如下:
class Adapter implements UsaInterface{ protected $china; public function __construct(China $china) { $this->china = $china; } public function outPut5V() { // TODO: Implement outPut5V() method. $chinaVoltage = $this->china->outPut220V(); return $chinaVoltage / 2 + 10 . "V"; }}
三、接口适配器(缺省适配器模式)
当不需要全部实现接口提供的方法时,可以先设计一个抽象类实现接口,并为接口提供默认的的空方法实现,那么改抽象类的子方法就可以有选择的覆盖父类的某
些方法来实现需求,(适用于一个接口不想使用所有的方法的情况)
相关学习推荐:PHP编程从入门到精通
以上就是PHP 设计模式之适配器模式 | PHP 技术论坛的详细内容,更多请关注ki4网其它相关文章!
PHP发起HTTP请求有哪几种方式?_php教程
PHP发起HTTP请求方式有:1、通过【file_get_contents】发送get请求;2、通过【CURL】发送get请求;3、通过【fsocket】发送get请求。
「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」
上一篇:了解PHP yield的高级用法_php教程,php,yield
下一篇:学习PHP-cli 模式在终端输出彩色标记文字以及动态内容_php教程,PHP,cli
共 0 条评论关于"PHP 设计模式之适配器模式 | PHP 技术论坛_php教程,PHP,适配器"
最新评论