Adapter 如果客户需要使用某个类的服务,而这项服务是这个类用一个不同的接口提供的,那么,可以使用适配器模式为客户提供一个期望的接口...
类适配器:
1using System;
2
3namespace Gof.Test.adapter
4{
5 public interface ICart
6 {
7 void Driver();
8 }
9}
1using System;
2
3namespace Gof.Test.adapter
4{
5 public class AlreadyWrite
6 {
7 public AlreadyWrite()
8 {
9 }
10
11 public void DriverMyCart()
12 {
13 Console.WriteLine("AlreadyWrite is Drivering!");
14 }
15 }
16}
1using System;
2
3namespace Gof.Test.adapter
4{
5 public class CartAdapetee:AlreadyWrite,ICart//先写类,后写接口。
6 {
7
8 public CartAdapetee()
9 {}
10
11 ICart 成员#region ICart 成员
12
13 public void Driver()
14 {
15 base.DriverMyCart();
16 }
17
18 #endregion
19 }
20}
1using System;
2
3namespace Gof.Test.adapter
4{
5 public class Client
6 {
7 public Client()
8 {
9 }
10 public void DriverCart()
11 {
12 ICart cart = new CartAdapetee();
13 cart.Driver();
14 Console.ReadLine();
15 }
16 }
17}
对象适配器:
1using System;
2
3namespace Gof.Test.adapter
4{
5 public class CartUsed
6 {
7 public CartUsed()
8 {
9 }
10 public virtual void DriverMyCart()
11 {
12 Console.WriteLine("I want to Drivering My Cart!");
13 }
14 }
15}
客户程序通过把要适配的类标记为Virtula,使得我们有机会重载它。但这样做有可能存在风险。
1using System;
2
3namespace Gof.Test.adapter
4{
5 public class Client
6 {
7 public Client()
8 { }
9 public void DriverCart()
10 {
11 CartAdapeteeObj cart = new CartAdapeteeObj();
12 cart.DriverMyCart();
13 Console.ReadLine();
14 }
15 }
16}
1using System;
2
3namespace Gof.Test.adapter
4{
5 public class CartAdapeteeObj:CartUsed
6 {
7 private AlreadyWrite already;
8 public CartAdapeteeObj()
9 {
10 already = new AlreadyWrite();
11 }
12 public override void DriverMyCart()
13 {
14 already.DriverMyCart();
15 }
16 }
17}
The Adapter Pattern converts the interface of a class into another interface the clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
Adapter 如果客户需要使用某个类的服务,而这项服务是这个类用一个不同的接口提供的,那么,可以使用适配器模式为客户提供一个期望的接口...相关推荐
- [收集] Web服务相关的, 介绍框架(framework)类的论文
收集了部分Web服务相关的, 介绍框架(framework)类的论文 <RECORD 1> WSCF: A framework for web service-based applicat ...
- 业务中台管理系统、业务中台架构、接口类服务、模型类服务、界面类服务、组件类服务、服务架构、中后台、服务审核、AI服务、位置服务、行业场景服务、企业中台、接口配置、模型配置、数据处理、结构化数据、数据源
业务中台管理系统.业务中台架构.接口类服务.模型类服务.界面类服务.组件类服务.服务架构.中后台.服务审核.AI服务.位置服务.行业场景服务.企业中台.接口配置.模型配置.数据处理.结构化数据.数据源 ...
- BS1022-基于React native+springboot开发服务端后台实现体育资讯类APP
基于React native的体育资讯类APP的开发目的是方便互联网用户线上接收日常生活中的体育赛事新闻,体育活动新闻,体育赛事直播等,方便人们在体育行业的社交,极大的缩减人们在体育运动方面的距离,也 ...
- android位置服务与GPS实时定位工具类
一.概述 据专家说:人类活动80%的信息与空间位置信息有关,这还真不是专家吹牛.举个例子:你跟女神约饭,你得知道女神在哪里吧?你们选择约在哪里的餐厅最合适?你们过去分别有多远?你们怎么过去?--总结起 ...
- 封装利用libwebsockets写出的客户端、服务端程序为客户端服务端类
封装利用libwebsockets写出的客户端.服务端程序为客户端服务端类 文章目录 封装利用libwebsockets写出的客户端.服务端程序为客户端服务端类 1.封装 2.封装后写wss客户端.服 ...
- 数控类设备数据读取数据服务接口(西门子数据采集、发那科数据采集、广数数据采集等等)数控采集适应性解决方案
行业现状: 最近听到很多做MES.ERP这一行的叫苦, 客户对项目的要求越来越严格,做到数字化工厂都伴随着ERP.MES的项目要求必须一起做下去 然而很对MES.ERP对设备协议不懂,买了协议自己还要 ...
- 微服务模式笔记:服务分解策略
Microservice Patterns第二章的读书笔记 原章节链接: https://learning.oreilly.com/library/view/microservices-pattern ...
- 从Netflix的Hystrix框架理解服务熔断和服务降级
本文讲的是从Netflix的Hystrix框架理解服务熔断和服务降级,伴随着微服务架构被宣传得如火如荼,一些概念也被推到了我们面前,其实大多数概念以前就有,但很少被提的这么频繁.想起有人总结的一句话, ...
- Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)
2019独角兽企业重金招聘Python工程师标准>>> 动手试一试 在开始使用Spring Cloud Hystrix实现断路器之前,我们先拿之前实现的一些内容作为基础,其中包括: ...
最新文章
- excel Match函数不同匹配类型用法解析
- python 样本均值t检验_假设检验与单样本T检验(上)
- java 去除干扰_【Selenium-WebDriver实战篇】Java丨验证码图片去除干扰像素,方便验证码的识别(转)...
- 数据库模型设计PowerDesigner
- 两个简单多边形面积相等,那么其中一个能分割成有限多块多边形,经过平移和旋转,拼合成第二个多边形...
- c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...
- 设计实现优雅修改redux数据流的一个库 - redux-chef
- LinuxControlGroup(Cgroup)简介
- 【白皮书分享】智能文字识别(OCR)能力评测与应用白皮书.pdf(附下载链接)...
- linux 下挂载光驱
- Visual Studio解决方案的目录结构设置和管理
- Lc101对称二叉树
- 链路状态路由选择LS
- nuget 下载nupkg 以及依赖包
- 什么是空号检测api接口?哪些行业会用到?
- 加载脚本依赖发生错误--暴力猴
- java省市区_JAVA省市区地址解析 原创
- INS/GNSS组合导航(五)惯性器件的主要误差
- Memcached damo
- 频率超出范围黑屏Linux,Win10专业版分辨率超出工作频率范围黑屏怎么办