博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java适配器模式之二 --类适配器
阅读量:4220 次
发布时间:2019-05-26

本文共 1128 字,大约阅读时间需要 3 分钟。

目的:
将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
 
意图:
  • 你想使用一个已经存在的类,而它的接口不符合你的需求。
  • 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
  • (仅适用于对象A d a p t e r )你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
     
    (目的和意图是不变的,摘自《设计模式迷你手册》电子版)
     
    下面是一个Java版的示例
     
    一、原理图:
     
    二、示例代码
  • /**
    * Created by IntelliJ IDEA.
    * User: leizhimin
    * Date: 2008-8-2 14:43:46
    * 源角色
    */
    public class Adaptee {
        public int get220v(){
           return 220;
        }
    }
  •  /**
    * Created by IntelliJ IDEA.
    * User: leizhimin
    * Date: 2008-8-2 14:43:23
    * 目标角色
    */
    public interface Target {
        int get110v();
        int get220v();
    }
  •  /**
    * Created by IntelliJ IDEA.
    * User: leizhimin
    * Date: 2008-8-2 14:43:07
    * 适配器角色:扩展源角色,实现目标角色,从而使得目标角色改动时候,不用改动源角色,只要改动适配器
    */
    public class Adapter extends Adaptee implements Target{
        public int get110v(){
            return 110;
        }
    }

  •  /**
    * Created by IntelliJ IDEA.
    * User: leizhimin
    * Date: 2008-8-2 15:00:31
    * 客户端
    */
    public class Client {
        public static void main(String rags[]) {
            new Client().test();
        }
        public void test() {
            Target target = new Adapter();
            int v1 = target.get110v();
            int v2 = target.get220v();
        }
    }
     
    适配器通过扩展源角色,同时实现目标接口,从而满足了同时提供220v,110v电压的要求。

转载地址:http://unlmi.baihongyu.com/

你可能感兴趣的文章
【屌丝程序的口才逆袭演讲稿50篇】第一篇:互联网时代U盘化生存方式 【张振华.Jack】
查看>>
CentOS6.4配置Hadoop-2.6.0集群配置安装指南(经过实战演练)【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第二篇:专注的力量 [张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第三篇:我的舍与得的2014[张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第五篇:不要给自己找任何借口【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第七篇:请留意我们身边的风景 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第八篇:坚持的力量 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第九篇:春节那些事-过年回家不需要理由【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第十一篇:马云乌镇40分钟演讲实录【张振华.Jack】
查看>>
Java并发编程从入门到精通 张振华.Jack --我的书
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第十二篇:世界上最快的捷径【张振华.Jack】
查看>>
Android中Java代码和XML布局效率问题
查看>>
android TextView属性大全(转)
查看>>
Conclusion for Resource Management
查看>>
Conclusion for Constructors,Destructors,and Assignment Operators
查看>>
《浪潮之巅》1 AT&T
查看>>
《浪潮之巅》2蓝色巨人 IBM公司
查看>>
《浪潮之巅》3水果公司的复兴
查看>>
《浪潮之巅》4计算机工业的生态链
查看>>
《浪潮之巅》5奔腾的芯 英特尔公司
查看>>