zoukankan      html  css  js  c++  java
  • 设计模式之 适配器模式

    存在一种情况如下:客户端需要调用一个已经存在的A类的行为,但该类与目前使用的相关(B、C)类实现了不同的接口,为了保持统一,客户希望可以使用统一的接口。适配器模式引入了Adaper类,该类实现了与B、C类相同的接口,且封装了A类的行为,客户端可以等同的看到B、C和Adaper类。

    实例:设有三个人:外国人Tom(实现接口IPerson);中国人张三(实现接口IPerson):外星人Extraterrestrial,他们分别要作自我介绍,Tom和张三具有相同的接口,他们自我介绍时使用方法Speak,而外星人没有实现IPerson接口,没有方法Speak,不过他有自己自我介绍的方法,叫“噢噢”;客户端并不关心谁是中国人,谁是外国人,谁是外星人,他们希望统一的使用Speak方法,这时就需要一个Adpater类来转换一下。实例代码如下:

    IPerson接口:


     public interface IPerson
        {
            
    string Speak();
        }

    Tom类:

    Code

    张三类:

    Code

    外星人:

    Code

    Adaper类:

    Code

    客户端:

    Code
  • 相关阅读:
    java多线程-阻塞队列BlockingQueue
    java多线程-ThreadLocal
    JZ-C-26
    JZ-C-25
    JZ-C-24
    JZ-C-23
    JZ-C-22
    JZ-C-21
    JZ-C-20
    JZ-C-19
  • 原文地址:https://www.cnblogs.com/zzy0471/p/1611231.html
Copyright © 2011-2022 走看看