定义:
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
结构:
- Target:目标接口,定义与客户端交互相关的接口,目标可以是具体的或抽象的类,也可以是接口。
- Adaptee:源接口,需要适配的类。
- Adapter:适配器,对 Adaptee 的接口与 Target 接口进行适配,通过在内部包装一个 Adaptee对象,把源接口转换成目标接口。
- Client:客户端代码。
代码实例:
类适配器:
/** * Target.php(目标接口) * Interface Target */interface Target{ public function method1(); public function method2();}/** * Adaptee.php(源接口) * Class Adaptee */class Adaptee{ public function method1() { echo "Adaptee Method1<br/>\n"; }}/** * Adapter.php(适配器) * Class Adapter */class Adapter extends Adaptee implements Target{ public function method2() { // TODO: Implement method2() method. echo "Adapter Method2<br/>\n"; }}// 客户端调用$adapter = new Adapter();$adapter->method1();$adapter->method2();
对象适配器:
/** * Target.php(目标接口) * Interface Target */interface Target{ public function method1(); public function method2();}/** * Adaptee.php(源接口) * Class Adaptee */class Adaptee{ public function method1() { echo "Adaptee Method1<br/>\n"; }}/** * Adapter.php(适配器) * Class Adapter */class Adapter implements Target{ private $adaptee; public function __construct(Adaptee $adaptee) { $this->adaptee = $adaptee; } public function method1() { // TODO: Implement method1() method. $this->adaptee->method1(); } public function method2() { // TODO: Implement method2() method. echo "Adapter Method2<br/>\n"; }}// 客户端调用$adapter = new Adapter(new Adaptee());$adapter->method1();$adapter->method2();
原文转载:http://www.shaoqun.com/a/481435.html
stadium:https://www.ikjzd.com/w/2729
parenthood:https://www.ikjzd.com/w/2497
邮乐网购物商城:https://www.ikjzd.com/w/1776
定义:适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。结构:Target:目标接口,定义与客户端交互相关的接口,目标可以是具体的或抽象的类,也可以是接口。Adaptee:源接口,需要适配的类。Adapter:适配器,对Adaptee的接口与Target接口进行适配,通过在内部包装一个Adaptee
跨境通网站:https://www.ikjzd.com/w/1329
淘粉吧首页:https://www.ikjzd.com/w/1725.html
广州从化哪里好玩?广州从化有哪些旅游景点?:http://tour.shaoqun.com/a/3809.html
清远12月份天气怎么样?要穿什么衣服?:http://tour.shaoqun.com/a/3683.html
广西百鸟岩在哪?环境怎么样?:http://tour.shaoqun.com/a/42968.html
没有评论:
发表评论