如何成为潍坊地区的百度网站排名代理商?
摘要:成品网站 代理,潍坊百度网站排名,wordpress+php调优,网站建设宗旨怎么写目录 适配器模式 简介 角色 使用 优缺点 使用场景 装饰器模式 简介 优缺点 模式结构 使用 使用场景 适配器模式 简介 允许将不兼容的对象包装成一个适配
成品网站 代理,潍坊百度网站排名,wordpress+php调优,网站建设宗旨怎么写目录
适配器模式
简介
角色
使用
优缺点
使用场景
装饰器模式
简介
优缺点
模式结构
使用
使用场景 适配器模式
简介
允许将不兼容的对象包装成一个适配器类#xff0c;使得其他类可以通过适配器类与原始对象进行交互#xff0c;从而提高兼容性 角色
目标角色…目录
适配器模式
简介
角色
使用
优缺点
使用场景
装饰器模式
简介
优缺点
模式结构
使用
使用场景 适配器模式
简介
允许将不兼容的对象包装成一个适配器类使得其他类可以通过适配器类与原始对象进行交互从而提高兼容性 角色
目标角色该角色定义把其他类转换为何种接口也就是我们的期望接口
源角色你想把谁转换成目标角色这个“谁”就是源角色它是已经存在的、运行良好的类或对象
适配器角色适配器模式的核心角色其他两个角色都是已经存在的角色而适配器角色是需要新建立的它的职责非常简单通过继承或是类关联的方式把源角色转换为目标角色
使用
1.定义目标接口创建一个目标接口这个接口定义了客户端所期望的功能。
2.创建原始类客户端原始功能
3.创建适配器类创建一个适配器类该类实现了目标接口同时包装了不兼容的原始对象使得客户端可以通过目标接口与原始对象进行交互
4.使用目标接口客户端代码使用目标接口与适配器进行交互
// 目标接口
interface Target { void request();
} // 原始类
class Adaptee { void specificRequest() { System.out.println(Adaptees specific request.); }
} // 适配器类
class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee adaptee; } Override public void request() { adaptee.specificRequest(); }
} // 客户端代码
public class Client { public static void main(String[] args) { Adaptee adaptee new Adaptee(); Target target new Adapter(adaptee); target.request(); }
} 目标接口Target它定义了一个request方法。我们还有一个原始类Adaptee它有一个名为specificRequest的方法。我们的适配器类Adapter实现了目标接口并且包装了原始类的specificRequest方法。在客户端代码中我们创建了一个原始类的实例和一个适配器类的实例然后将适配器类的实例传递给目标接口的引用。当我们调用目标接口的request方法时实际上是适配器类在调用原始类的specificRequest方法
优缺点
优点 1.能提高类的透明性和复用现有的类复用但不需要改变。 2.目标类和适配器类解耦提高程序的扩展性。 3.在很多业务场景中符合开闭原则
缺点 1.适配器编写过程需要全面考虑可能会增加系统的复杂性 2.增加代码阅读难度降低代码可读性过多使用适配器会使系统代码变得凌乱
使用场景 1.一个类的接口转换成期望的另一个接口使不能兼容的两个类一起工作 2.想要创建一个可以复用的类该类可以与其他不相关的类或不可预见的类协同工作 3.在软件维护期间由于不同产品或不同厂家造成功能类似而接口不相同的情况可以通过适配器模式来解决 使用适配器模式可以降低不同组件之间的耦合度提高系统的可扩展性和可维护性。
