1 代码演练
1.1 代码演练1(策略模式简单应用)
1.2 代码演练2
1.3 代码演练3
1 代码演练
1.1 代码演练1(策略模式简单应用)
需求:
木木网卖课程,为了促进销售,618实行买课程立减10元,双十一实行满50减10元,还有返现的优惠(这个活动还没有开始)。请实现它
uml类图:
测试类:
package com.geely.design.pattern.behavioral.strategy; public class TestStrategy { public static void main(String [] args){ PromotionActivity promotionActivityLJ = new PromotionActivity(new LiJianPromotionStrategy()); PromotionActivity promotionActivityMJ = new PromotionActivity(new ManJianPromotionStrategy()); promotionActivityLJ.execute(); promotionActivityMJ.execute(); } }
应用层:
package com.geely.design.pattern.behavioral.strategy; public class PromotionActivity { private PromotionStrategy promotionStrategy; public PromotionActivity(PromotionStrategy promotionStrategy) { this.promotionStrategy = promotionStrategy; } public void execute(){ promotionStrategy.doPromotion(); } }
实现类1:
package com.geely.design.pattern.behavioral.strategy; public class LiJianPromotionStrategy implements PromotionStrategy { @Override public void doPromotion() { System.out.println("立减10元"); } }
实现类2:
package com.geely.design.pattern.behavioral.strategy; public class ManJianPromotionStrategy implements PromotionStrategy { @Override public void doPromotion() { System.out.println("满50元减10元"); } }
实现类3:
package com.geely.design.pattern.behavioral.strategy; public class FanXianPromotionStrategy implements PromotionStrategy { @Override public void doPromotion() { System.out.println("返现10元到木木网"); } }
接口:
package com.geely.design.pattern.behavioral.strategy; /** * 初始接口 */ public interface PromotionStrategy { void doPromotion(); }
打印日志:
立减10元
满50元减10元
Process finished with exit code 0
1.2 代码演练2
1.3 代码演练3
原文:https://www.cnblogs.com/1446358788-qq/p/11639220.html