
策略的设计模式属于行为型模式一种,通过定义的一套算法类,进行封装,让算法类之间可以相互替换,从而达到一种按照调用侧/实现侧去决定目标实现。策略模式可以最大程度的避免代码中 if else 以及 switch 语句。
策略模式 的实现包含三个组成部分,分别为 策略类 、 具体策略类 、 上下文 。
Strategy 。ConcreteStrategy 来配置,维护一个对 Strategy 对象的引用
此处假定我们在商场购物,用户支付的环节,在用户支付过程中,我们可以选择 现金 、信用卡、积分。
public interface Payment {
void payment();
}
public class Cash implements Payment{
@Override
public void payment() {
System.out.println("现金付款");
}
}
public class Credit implements Payment{
@Override
public void payment() {
System.out.println("信用卡付款");
}
}
public class Points implements Payment{
@Override
public void payment() {
System.out.println("积分付款");
}
}
public class Shopping {
private Payment payment;
public Shopping(Payment payment) {
this.payment = payment;
}
public void buyDesktop(){
System.out.println("购买台式机");
payment.payment();
}
}
@DisplayName("策略应用")
@Test
public void testStrategy() {
Payment payment = new Cash();
Shopping shopping = new Shopping(payment);
shopping.buyDesktop();
}
