当前位置: 首页 > wzjs >正文

北京联通网站备案推广产品的渠道

北京联通网站备案,推广产品的渠道,c .net怎么做网站,建网站费用模式定义 将一个接口转换成客户希望的另一个接口,使接口不兼容的类可以一起工作 既可以作为类结构型模式,也可以作为对象结构型模式 模式结构 类适配器模式 对象适配器模式 Target:目标抽象类 是Adapter设计的工作目标 Adapter&#xff1a…

模式定义

将一个接口转换成客户希望的另一个接口,使接口不兼容的类可以一起工作

  • 既可以作为类结构型模式,也可以作为对象结构型模式

模式结构

 类适配器模式

 对象适配器模式

  • Target:目标抽象类
    • 是Adapter设计的工作目标
  • Adapter:适配器类
  • Adaptee:适配者类
    • 是期望Target具有的类似动作来源
  • Client:客户类

类适配器代码

public class Adapter extends Adaptee implements Target {public void request() {specificRequest();}}

对象适配器代码

public class Adapter extends Target {private Adaptee adaptee;public Adapter(Adaptee adaptee) {this.adaptee = adaptee;}public void request() {adaptee.specificRequest();}}

默认适配器模式(Default Adapter Pattern)

  • 又称缺省适配器模式、单接口适配器模式

先设计一个抽象类实现接口,并为该接口中每个方法提供一个默认实现(空方法),该抽象类的子类可有选择地override父类的某些方法来实现需求

  • 适用于不想使用一个接口所有的方法的情况

双向适配器

对象适配器的使用过程中,如果在Adapter中同时包含对Target类和Adaptee类的引用,那么该Adapter就是一个双向适配器

  • Adaptee可以通过Adapter调用Target类中的方法
  • Target类可以通过Adapter调用Adaptee类中的方法

实例

实例一:仿生机器人 

现需要设计一个可以模拟各种动物行为的机器人,在机器人中定义了一系列方法,如机器人叫喊方法cry()、机器人移动方法move()等。如果希望在不修改已有代码的基础上使得机器人能够像狗一样叫,像狗一样跑,使用适配器模式进行系统设计。

  • Target是机器人(因为是机器人像狗一样,应是机器人适配狗)

实例二:加密适配器

某系统需要提供一个加密模块,将用户信息(如密码等机密信息)加密之后再存储在数据库中,系统已经定义好了数据库操作类。为了提高开发效率,现需要重用已有的加密算法,这些算法封装在一些由第三方提供的类中,有些甚至没有源代码。使用适配器模式设计该加密模块,实现在不修改现有类的基础上重用第三方加密方法。

  • Target是数据库操作类,Adaptee是加密算法

模式分析

  • 优点
    • 将Target类和Adaptee类解耦
      • 通过引入一个Adapter类来重用现有的Adaptee类,而无须修改原有代码
    • 增加了类的透明性和复用性
      • 将具体的实现封装在Adaptee类中,对于客户端类来说是透明的,而且提高了Adaptee的复用性
    • 灵活性和扩展性都非常好
      • 通过使用配置文件,可以很方便地更换Adapter,也可以在不修改原有代码的基础上增加新的Adapter类
      • 符合开闭原则
对于类适配器模式
  • 优点
    • 由于Adapter类是Adaptee类的子类,因此可以在Adapter类中override一些Adaptee的方法,使得Adapter的灵活性更强
  • 缺点
    • 使用有一定的局限性,不能将一个Adaptee类和它的子类都适配到目标接口
      • 对于不支持多重继承的语言,一次最多只能适配一个Adaptee
    • Target类只能为抽象类,不能为具体类

对于对象适配器模式

  • 优点
    • 一个对象适配器可以把多个不同的Adaptee适配到同一个Target
      • 同一个Adapter可以把Adaptee类和它的子类都适配到目标接口
  • 缺点
    • 置换Adaptee类的方法相对复杂
      • 先做一个Adaptee类的子类,将Adaptee类的方法置换掉
      • 把子类当做实际的Adaptee进行适配

适用环境

  • 系统需要使用现有的类,而这些类的接口不符合系统的需要
  • 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作
http://www.dtcms.com/wzjs/18969.html

相关文章:

  • 什么网站做国外批发上海网络营销上海网络推广
  • 国外的一个大学生做的匿名社交网站长沙网站公司品牌
  • 博客可以做网站收录用的吗合肥百度快照优化排名
  • 怎样下载门户网站小程序开发平台官网
  • asp做的网站数据库在哪里建站之星网站
  • 做调查问卷能赚钱的网站网站建设方案书范文
  • 有什么做视频的免费素材网站淘宝店铺运营
  • 用flash做的网站有哪些百度收录网站链接入口
  • 创业给企业做网站开发百度平台客服联系方式
  • 安通建设有限公司网站重庆百度推广关键词优化
  • 四川微信网站建设公google浏览器官网入口
  • 企业管理软件开发平台上海seo优化
  • 织梦做响应式网站seo数据监控平台
  • 怎么做直播网站刷弹幕乔拓云建站平台
  • 网站建设数据库怎么选择百度快速优化软件
  • 怎么在网站上添加地图自己怎么做一个网页
  • 网站设计公司排名知乎网站推广软件费用是多少
  • wordpress 实例农大南路网络营销推广优化
  • 网站怎么做排查修复安卓优化大师app
  • 页面简洁的网站by72777最新域名查询
  • 网站制作与网站建设内容企业推广
  • 自己做网站好还是购买网站好石家庄最新新闻事件
  • 汕头做网站费用市场调研分析报告模板
  • 哪些网站可以做团购武汉seo主管
  • 珠海市 网站建设网络舆情处置的五个步骤
  • 番禺网站制作价格nba排名西部和东部
  • 中国建设银行启东市支行网站官网百度
  • 鲁中网站怎么做网站排名
  • 官方网站怎么制作网络营销论文题目
  • 日本做H网站怎样把个人介绍放到百度