策略模式
策略模式理解
- 将策略抽象为接口类之后,策略子类实现自己的策略
- 在业务上下文中持有策略接口类
- 在业务上下文中业务逻辑中使用注入的策略接口计算自己最终通过策略接口获取的结果
装饰者模式
装饰器模式理解
- 将某类需要装饰的对象抽象为抽象类 例如 Drink 饮料类
- 将对象和装饰器分别继承该抽象类 Drink,进一步解释就是 被装饰者Coffee咖啡类继承Drink, 装饰者(牛奶,糖,等等的一些配料表)因为是要装饰某一种Drink,所以装饰着也需要继承Drink
- 使用的过程中,如果我们要装饰某一种饮料,例如 我们要装饰美式咖啡, 伪代码如下:
// 例如我们要加入牛奶 和 糖的美式咖啡
Drink order = new 美式咖啡()
order = new 牛奶(order)
order = new 糖(order)
// 最终可以获取装饰后的咖啡的价格 调用Drink的coat() 计算被装饰过后的价格
System.out.println("被装饰过后咖啡的价格 = "+order.coat())