1 介绍
小白:老板,这件衣服多少钱哇?
老板:这件衣服500大洋。
小白:这麽贵😥。
Acey:等等小白,我有会员卡哦。
小白:这张卡....我服,,ԾㅂԾ,,。
老板:小鹏友,这张是钻石会员,可以打9折哦。
小白:那就是450块咯,瞬间省了50大洋,谢谢大哥。🙃
Acey:木事木事。其实会员卡和适配器模式还是比较类似的啦。
适配器模式:Adapter模式是构造型模式的一种,可以改变已存在类(或外部组件)的接口形式。
小白:这个样子呀,会员卡可以有好几个等级,这就是适配嘛?
Acey:对呢,会员卡就是对衣服售价(外部组件)功能的一个扩充,而普通会员,高级会员就是对会员卡的一个适配,当然商家也可以继续添加钻石会员等。
小白:这样我们就可以拿着会员卡打相应的折扣啦。
2 实现
第一步:创建衣服
Clothes.class
public class Clothes {
//衣服价钱
private Integer price = 500;
public void sale(){
System.out.println("衣服原价:" + price);
}
public Integer getPrice() {
return price;
}
}
第二步:创建VIP适配器
Adapter.class
public class Adapter {
private Clothes clothe;
//获取衣服信息
public Adapter(Clothes clothe) {
this.clothe = clothe;
}
//一级会员
public void VIP1(){
this.clothe.sale();
System.out.println("您的卡为VIP1,打9折,打折后的价格为:" + 0.9 * this.clothe.getPrice());
}
//二级会员
public void VIP2(){
this.clothe.sale();
System.out.println("您的卡为VIP2,打7折,打折后的价格为:" + 0.7 * this.clothe.getPrice());
}
}
第三步:测试
MainClass.class
public class MainClass {
public static void main(String[] args) {
Adapter adapter = new Adapter(new Clothes());
//打折
adapter.VIP1();
}
}
Acey:这样实现后可以将目标类和适配器解耦,一方需要改动时另一方无需改动。而且一个适配器可以适配多个目标类,即一张会员卡购买商场内的东西都是打折扣的。当然了也可以多个适配器同时适配一个目标类。
.
喜欢的话戳一下喜欢呗。
有什么建议的话希望大家能在下方回复😋
上一篇:《大/小白祝大家元旦Glücklich》
下一篇:《解释器模式 - 明天考试,戳不辍进来你自己看着办》(待更)