Adapter(适配器)——换个包装再度利用
Adapter Pattern
适配器的功能就是介入既有内容和需要结果之间,作为沟通的桥梁。
Adapter Pattern又称为Wrapper(包装) Pattern
AP分为以下两种:类的AP(继承),对象的AP(委托)
例一(继承)
Banner类,既有的类
Print接口,需要的接口
PrintBanner类,适配器类
Public class PrintBanner extends Banner implements Print{
Public PrintBanner(String string){
Super(string)
}
Public void printWeak(){
showWithParen();
}
Public void printStrong(){
ShowWithAster();
}
}
使用时
Print p=new PrintBanner(“Hello”);
这样只需要知道有人提供Print的方法,至于到底是怎么实现的,原型是什么,不必操心了。
例二(委托)——对象的AP
委托:主要指把事情“交给谁”的意思。只把某个方法的实际处理交给其他对象的方法进行。
Public class PrintBanner extends Print{
Private Banner banner;
Public PrintBanner(String string){
This.banner=new Banner(string)
}
Public void printWeak(){
Banner.showWithParen();
}
Public void printStrong(){
Banner.ShowWithAster();
}
}
AP的所有参与者
Adapter Pattern中所出现过的参与者可整理如下
Target(对象) 决定现在需要什么方法的参与者 如print接口(继承)和print类(委托)
Client(委托人) 利用Target参与者的方法来做事的参与者
如Main类
Adaptee(被动符合)
(非Adapter(主动符合))具有既有方法的参与者,他是被动加入此事件的,如Banner类 若担任Adaptee参与者的方法与Target参与者的方法相符时,那就不需要后面的Adapter参与者了
Adapter AP的核心人物,利用Adaptee参与者的方法努力满足Target的要求是AP的天赋使命,也是Adapter的工作,如PrintBanner。Adapter要通过
继承或委托方式来利用Adaptee
AP可以把过去是使用过的类换个包装重新建立出需要的类,这个Pattern可以帮你节省建立必要方法组群的时间。
继承
委托
可用在版本更新与兼容性方面