首页 > 其他 > 详细

[20-06-01][Design Model 10]STRATEGY 1

时间:2020-06-01 14:41:18      阅读:31      评论:0      收藏:0      [点我收藏+]
1 package test_28_1;
2 
3 public abstract class Strategy {
4 
5     public abstract void method();
6 }

 

 1 package test_28_1;
 2 
 3 public class ConcreteStrategyA extends Strategy {
 4 
 5     @Override
 6     public void method() {
 7 
 8         System.out.println("ConcreteStrategyA method()");
 9     }
10 }

 

 1 package test_28_1;
 2 
 3 public class ConcreteStrategyB extends Strategy {
 4 
 5     @Override
 6     public void method() {
 7         
 8         System.out.println("ConcreteStrategyB method()");
 9     }
10 }

 

 1 package test_28_1;
 2 
 3 public class ConcreteStrategyC extends Strategy {
 4 
 5     @Override
 6     public void method() {
 7 
 8         System.out.println("ConcreteStrategyC method()");
 9     }
10 }

 

 1 package test_28_1;
 2 
 3 public class Context {
 4 
 5     private Strategy strategy;
 6     
 7     public Context(Strategy strategy) {
 8 
 9         this.strategy = strategy;
10     }
11     
12     public void contextMethod() {
13         
14         strategy.method();
15     }
16 }

 

 1 package test_28_1;
 2 
 3 public class StrategyTest {
 4 
 5     public static void main(String[] args) {
 6         
 7         ConcreteStrategyA A = new ConcreteStrategyA();
 8         ConcreteStrategyB B = new ConcreteStrategyB();
 9         ConcreteStrategyC C = new ConcreteStrategyC();
10         
11         Context contextA = new Context(A);
12         Context contextB = new Context(B);
13         Context contextC = new Context(C);
14         
15         contextA.contextMethod();
16         contextB.contextMethod();
17         contextC.contextMethod();
18     }
19 }

 

结果如下:

ConcreteStrategyA method()
ConcreteStrategyB method()
ConcreteStrategyC method()

[20-06-01][Design Model 10]STRATEGY 1

原文:https://www.cnblogs.com/mirai3usi9/p/13025036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!