第22章
大B:“可以啊!如果两个类所做的事情相同或相似,但是他们有不同的接口的时候要使用它。类都是共享同一个接口,那你想客户代码要怎么样才行?”
小A:“客户代码只要统一调用同一接口就行了,是不是这样简单,直接,更紧凑?”
大B:“是的,软件都是需要维护的,维护可能会因不同的开发人员,不同的产品,不同的厂家,造成功能类似但是接口不同,这时就可以使用适配器。”
小A:“你是说,在软件开发后期或维护的时候再考虑使用适配器?”
大B:“在设计阶段没必要把类似的功能类的接口设计的不同。”
小A:“使用一个已经存在的类,如果它的接口,方法和你的要求不相同的时候,可以考虑用适配器模式吗?”
小A:“可是不同的程序员定义方法的名称也可能是不同的呀!”
大B:“那也是,但是在一般公司内部,类和方法的命名是有规范的,做好前期就设计,接口不相同的时候,第一时间不应该考虑用适配器,而是考虑通过重构统一接口。”
大B:“有人举过这样一个例子:虎与飞禽是没有直接关联的两类动物,但是现在出来了个‘飞虎’,它同时具有虎肉食动物跟飞禽会飞的特质,要在飞禽这个类系中添加一个成员类‘飞虎’,除了直接实现‘飞虎’类,还有一种简单的办法是实现一个Adapter类,在其中包容一个虎的对象,同时实现飞禽的接口即可。当然,对于这个问题,多继承或者实现多接口可能是一个更直观的作法,在实际应用中,可视具体需要确定采用何种作法。”
大B:“有,就好像在设计一个系统时使用第三方开发组件,这个组件的接口与系统接口不相同,这个时候就不用为了迎合它去改动自己的接口,在这种情况下,虽然是在开发设计阶段,解决接口不同的问题也可以用适配器模式。”
小A:“这样呐!”
小A:“也就是说要在双方都不太容易修改的时候,这个时候再使用适配器模式适配?不是一出现不同时就使用它?会不会有在设计初就考虑用适配器模式的情况哩?”
其他人正在读 :【从婴儿开始入道】【天才俱乐部】【都重生了谁考公务员啊】【明日方舟之铁与血】【娱乐:求求了,国家队别欺负人了】【重生之奶爸的悠闲生活】【宝可梦侦探:竹兰逼我领养精灵】【诡异命纹:开局铭刻十大阎罗】【长生仙路】【我的弟子全是大帝之资】【末世之世纪轮回】【我怎么就成F1车手了?】【星河战役2之卡朋纪】【救命,妈妈送了只魅魔给我!】【神医高手】【不眠春潮】【仙子的修行】【家族修仙:掌上山河】【成人】【战锤:我乃帝国之锤】【从零开始无限进化】【文野:开局怀疑异能力想弑主】【从尸解仙开始】【灯花笑】【七零大杂院小寡妇】【从三十而已开始的影视攻略】【摆烂太狠,我被宗门当反面教材了】【诸天从全真剑法开始】【苟在神诡世界】【今天也没能扬帆起航】