【php设计模式】适配器模式
时间:2022-06-22
本文章向大家介绍【php设计模式】适配器模式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
适配器模式(对象适配器、类适配器):
将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。
在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合。 角色: Target(目标抽象类) 目标抽象类定义客户所需的接口,可以是一个抽象类或接口,也可以是具体类。 Adapter(适配器类) 它可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配。它是适配器模式的核心。 Adaptee(适配者类) 适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类包好了客户希望的业务方法。
对象适配器:
interface Target{
public function MethodOne();
public function MethodTwo();
}
class Adaptee{
public function MethodOne(){
echo "+++++++++n";
}
}
class Adapter implements Target{
private $adaptee;
public function __construct(Adaptee $adaptee){
$this->adaptee = $adaptee;
}
public function MethodOne(){
$this->adaptee->MethodOne();
}
public function MethodTwo(){
echo "------------";
}
}
$adaptee = new Adaptee();
$adapter = new Adapter($adaptee);
$adapter->MethodOne();
类适配器:
class Adapter2 extends Adaptee implements Target{
public function MethodTwo(){
echo "-----------";
}
}
$adapter2 = new Adapter2();
$adapter2->MethodOne();
- MapX中实现友好的交互
- 170个城市网约车车辆准入条件大数据报告
- 测试人员的“偷懒大法”
- Flash背景透明的代码
- Maven私服Nexus3.x环境构建操作记录
- Mapx用xml创建点图层
- 编程语言之间的百舸争流
- Mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
- 适应现代变化的数据架构
- Linux下修改系统编码的操作记录
- 微信公众平
- linq to xml复习
- web cache server方案比较:varnish、squid、nginx
- Nginx虚拟目录alias和root目录
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 【tensorflow2.0】AutoGraph的使用规范
- django-个人网站之环境配置(一)
- 用C++跟你聊聊“职责链模式”
- django-常见问题勘误
- 【tensorflow2.0】AutoGraph和tf.Module
- mybatis之第一个mybatis程序(二)
- mybatis-spring整合的三种(逐渐优化)方案
- 用C++跟你聊聊“命令模式”,跟我聊就够了
- 【tensorflow2.0】数据管道dataset
- 用C++跟你聊聊“桥接模式”
- 用C++跟你聊聊“单例模式”,类的“计划生育”
- django-HttpResponse,render,redirect
- django-ForeignKey,OneToOneField,ManyToManyField
- 用C++跟你聊聊“备忘录模式” ,如果能重来,我要···
- 数据库(一)--通过django创建数据库表并填充数据