本文介绍: 可以将同一种功能的不同实现细节抽取到一个抽象接口中,把不同的实现让子类实现,最终我们只需选择不同的子类即可策略类 Strategy : 定义所有⽀持的算法的公共接⼝。具体策略类 ConcreteStrategy : 实现了策略接⼝,提供具体的算法实现。上下⽂类 Context : 包含⼀个策略实例,并在需要时调⽤策略对象的⽅法。
可以将同一种功能的不同实现细节抽取到一个抽象接口中,把不同的实现让子类实现,最终我们只需选择不同的子类即可
策略类 Strategy : 定义所有⽀持的算法的公共接⼝。
具体策略类 ConcreteStrategy : 实现了策略接⼝,提供具体的算法实现。
上下⽂类 Context : 包含⼀个策略实例,并在需要时调⽤策略对象的⽅法
策略类
public interface Strategy {
void show();
}
具体策略类
public class StrategyA implements Strategy {
public void show() {
System.out.println("春节活动: 买一送一");
}
}
public class StrategyB implements Strategy {
public void show() {
System.out.println("中秋活动: 满200元减50元");
}
}
上下文类
public class SalesMan {
//持有抽象策略角色的引用
private Strategy strategy;
public SalesMan(Strategy strategy) {
this.strategy = strategy;
}
//向客户展示促销活动
public void salesManShow(){
strategy.show();
}
}
Test
public class Test {
public static void main(String[] args) {
SalesMan salesManA = new SalesMan(new StrategyA());
salesManA.salesManShow();
SalesMan salesManB = new SalesMan(new StrategyB());
salesManB.salesManShow();
}
}
原文地址:https://blog.csdn.net/weixin_64704029/article/details/135941232
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_66179.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。