`
tangxininjava
  • 浏览: 94507 次
  • 性别: Icon_minigender_1
  • 来自: 遂宁
社区版块
存档分类
最新评论

适配器模式

 
阅读更多

1.设计模式学习,适配器模式
       1.练习思考,demo:欧式插座是三孔的,美式插头是用于两孔插座,这时他们之间就需要一个适配器(交流电适配器)来满足需求了。
    这上面有三个对象,如何定义哪个是接口,那个是对象。适配器应该定义为接口还是对象呢?先思考一分钟:大体描述下:
    欧式插座定义规范是三孔的,把欧式插座定义为接口,适配器是为了衔接或链接欧式三孔插座和美式两头插头的,因此把适配器
    定义为类,适配器中再适配对象(欧式插座)即定义一个,构造函数去引入欧式插座对象。那美式插头对象如何处理呢?这个思路不对呀。
    大致思路再思考下:美式插头的动作是插入到交流电适配器上,然后交流电适配器再插入到欧式三孔插座上。这样思路才清晰。哪个对象的动作
    关联到哪个对象上。美式插头有个动作:美式插头插入到交流电适配器上,交流适配器有个动作:交流适配器插入到欧式插座上。
    对象图:美式插头->交流电适配器->欧式插座 ,由图可以看出,美式插头对于交流器和欧式插座都有相同的动作插入,这个插入由适配器来适配。
    这里产生混乱的原因是因为我没有搞清楚被适配者角色,其实我觉得美式插头和欧式插座都可以定义为被适配者,比如:把美式插头定义为被适配者,
    那么欧式插座就可以理解为目标角色,看你怎么看如何适应的,因为交流适配器作为了适配器。
    有用的思路:从设计模式书中我有了点头绪,它是这样说的:交流适配器把欧式插座转换成了美式插座,以便让美式笔记本插头能够插入美式插座得到电力,
    也可以这么说:适配器改变了插座的接口,以符合美式笔记本电脑的需求。(通过这段有用的思路我继续修改的我的代码。)
   
    有用的思路:将一个接口转换为另一个接口,已符合客户的期望。这里我漏掉了一点,接口应该是继符合美式插头又要符合欧式插座的,应该瞻前顾后。
    到目前为止通过例子:鸭子类图和插座的类图初步了解了适配器模式。
   

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics