如果水果店的橘子包装盒用完了,苹果包装盒有多余,需要代替一下怎么做。

苹果包装盒很有可能不太适合装橘子,有可能挤压碰撞等,需要做一些操作来适应橘子,这时候就需要适配一下。

适配器模式

private static OrangeBag getBag2(){
//准备用途苹果盒代替
AppleBag appleBag = new AppleBag();
//把苹果盒适配成桔子包装盒
OrangeBag orangeBag = new OrangeBagAdapter(appleBag);
return orangeBag;
}
public static void main(String[] args){
Orange orange = new Orange("peter",100);
OrangeBag bag = getBag2();
orange.pack(bag);
}
/**
* 桔子包装适配器
*/
public class OrangeBagAdapter extends OrangeBag {
private AppleBag appleBag;
public OrangeBagAdapter(AppleBag appleBag){
this.appleBag = appleBag;
}
@Override
public void pack() {
appleBag.pack();
}
}
适用场景
原有功能无法扩展,临时组合的场景
总结
通过添加一个适配类,组合原有类,来进行功能转换
适配器模式其实是一个结构设计不合理的补救措施
网友评论