Net设计模式实例之适配器模式(Adapter Pattern)

简介:

一、适配器模式简介(Brief Introduction

适配器模式,将一个类装换成客户期望的另外一个接口。 Adapter 模式使的原本由于接口不兼容而不能工作的那些类可以一起工作。

二、解决的问题(What To Solve

1 、使用第三方组件,而这个组件的接口与目前系统接口不兼容(如方法与系统方法不一致等),可以使用适配器模式解决接口不兼容问题。
2 、使用早前项目一些有用的类,可以用适配器模式解决现有接口与原有对象接口不兼容问题。

三、适配器模式分析(Analysis

1、适配器模式结构

 

 

 

 

 

 

 

 

 

 

 

 

 

2、源代码

1 、客户期待的接口或者抽象类 Target
public  abstract class Target
{
    public abstract void  Request();
}
 
2 、要适配的类 Adaptee ,也就是与期望调用接口不相符的类
public  class Adaptee
{
    public void  SepecificRequest()
     {
        Console .WriteLine(" 执行要适配类的特殊请求方法" );
     }
}
 
3 、适配器类 Adapter 把源接口转换成目标接口,包行变量 adaptee
public  class Adapter :Target
{
    private Adaptee  adaptee;
    public override void  Request()
     {
        if  (adaptee == nu ll )
         {
             adaptee = new Adaptee ();
         }
         adaptee.SepecificRequest();
     }
}
 
4 、客户端代码
static  void  Main (string [] args)
{
    Target  target = new Adapter ();
     target.Request();
    Console .Read();
}

3、程序运行结果

 

四、案例分析(Example

场景:系统调用第三方计算类库Calculator ,一开始调用的是带两个整型参数的Add 方法,后来计算类库中的Add 方法两个参数变为Float 类型,此时再使用就的调用方式需要更改客户代码,这是不好的解决办法,较好的解决办法是,使用适配器模式解决接口不一致问题。
Add 方法参数变更前的调用方式:
 
 
 
Add 方法参数类型变更后,增加适配器类 CaculatorAdapter,   解决了接口不一致问题。 如下图:
   

五、总结(Summary

适配器模式,将一个类装换成客户期望的另外一个接口。 Adapter 模式统一了不兼容对象的接口,使的原本由于接口不兼容而不能工作的那些类可以一起工作。









本文转自 灵动生活 51CTO博客,原文链接:http://blog.51cto.com/smartlife/265579,如需转载请自行联系原作者

目录
相关文章
|
设计模式 算法 Java
行为型设计模式-策略模式(Strategy Pattern)
行为型设计模式-策略模式(Strategy Pattern)
|
6月前
|
设计模式 Java 数据安全/隐私保护
Java 设计模式:装饰者模式(Decorator Pattern)
装饰者模式属于结构型设计模式,允许通过动态包装对象的方式为对象添加新功能,提供比继承更灵活的扩展方式。该模式通过组合替代继承,遵循开闭原则(对扩展开放,对修改关闭)。
|
12月前
|
设计模式
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
12月前
|
设计模式 Java
设计模式--适配器模式 Adapter Pattern
这篇文章介绍了适配器模式,包括其基本介绍、工作原理以及类适配器模式、对象适配器模式和接口适配器模式三种实现方式。
|
设计模式 安全 Java
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
该文介绍了一种C++的编程技巧——奇异递归模板模式(CRTP),旨在让派生组件能继承基本组件的特定功能。通过示例展示了如何创建一个`Fighter`接口和`MmaFighter`类,其中`MmaFighter`及其子类如`MmaBantamweightFighter`和`MmaHeavyweightFighter`强制类型安全,确保相同重量级的拳手之间才能进行比赛。这种设计避免了不同重量级拳手间的错误匹配,编译时会报错。CRTP适用于处理类型冲突、参数化类方法和限制方法只对相同类型实例生效的情况。
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
|
设计模式
设计模式-05建造者模式(Builder Pattern)
设计模式-05建造者模式(Builder Pattern)
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
90 1
|
4月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
114 16
|
4月前
|
设计模式 负载均衡 监控
并发设计模式实战系列(2):领导者/追随者模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第二章领导者/追随者(Leader/Followers)模式,废话不多说直接开始~
119 0
|
4月前
|
设计模式 监控 Java
并发设计模式实战系列(1):半同步/半异步模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第一章半同步/半异步(Half-Sync/Half-Async)模式,废话不多说直接开始~
94 0