首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计形式之Adapter(适配器模式)

2012-08-31 
设计模式之Adapter(适配器模式)所谓适配器模式就是将一个类的接口,转换成客户期望啊的另一个接口,使原本不

设计模式之Adapter(适配器模式)
所谓适配器模式就是将一个类的接口,转换成客户期望啊的另一个接口,使原本不兼容的类可合作无间。



例如这样的一个场景:在一个Amd的主板上原本只能插着Amd的CPU。
用代码表示就是这样的:

package com.unis.adpater;/** * AMD主板类 * @author Administrator * */public class AmdBoard {private Amd amd;public AmdBoard(Amd amd) {this.amd = amd;}public void start(){System.out.println("开机");amd.ac();}}package com.unis.adpater;/** * AMD的CPU * @author Administrator * */public interface Amd {void ac();}


这样我在使用的时候AMD的主板只能插上AMD的CPU。

而这个时候我有一块Intel的CPU。
package com.unis.adpater;/** * Intel的CPU * @author Administrator * */public interface Intel {void power();}

这个时候我想在我AMD的主板上插上Intel的CPU则就插不上。
如果想在AMD的主板上可以插上Intel的CPU我们则需要一个适配器。
package com.unis.adpater;/** * 适配器 * @author Administrator * */public class Intel2Amd implements Amd {Intel i ;public Intel2Amd(Intel i) {this.i= i;}@Overridepublic void ac() {i.power();}}


这个时候我有一款I7的Intel的CPU,则就可以插在AMD的主板上工作了
package com.unis.adpater;/** * I7 CPU * @author Administrator * */public class I7 implements Intel {@Overridepublic void power() {System.out.println("I7 CPU 工作了");}}package com.unis.adpater;public class Test {public static void main(String[] args) {Intel i7 = new I7();Intel2Amd i2a = new Intel2Amd(i7);AmdBoard ab = new AmdBoard(i2a);//让主板工作ab.start();}}

热点排行