首页 > 其他 > 详细

策略模式

时间:2017-04-13 00:45:50      阅读:190      评论:0      收藏:0      [点我收藏+]

介绍:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户

1.定义抽象算法类

1 //抽象算法类
2     abstract class strategy
3     { 
4        //算法方法
5         public abstract void AlgorithmInterface();
6     }

2.定义具体的算法去实现抽象类

 1 //具体算法A
 2     class ConcreteStrategyA : strategy
 3     { 
 4         //算法A实现方法
 5         public override void AlgorithmInterface()
 6         {
 7             Console.WriteLine("我是算法A的实现方法!");
 8         }
 9     }
10     //具体算法B
11     class ConcreteStrategyB : strategy
12     { 
13         //算法B实现方法
14         public override void AlgorithmInterface()
15         {
16             Console.WriteLine("我是算法B的实现方法!");
17         }
18     }
19     //具体算法C
20     class ConcreteStrategyC : strategy
21     { 
22         //算法C实现方法
23         public override void AlgorithmInterface()
24         {
25             Console.WriteLine("我是算未能C的实现方法!");
26         }
27     }

3.上下文,类中有算法类的属性,有一个调用算法类的方法

 1 class Context 
 2     {
 3         private strategy strate;
 4         public Context(strategy strate) 
 5         {
 6             this.strate = strate;
 7         }
 8         public void ContextInterface() 
 9         {
10             strate.AlgorithmInterface();
11         }
12     }

4.客户端调用

1 class Program
2     {
3         static void Main(string[] args)
4         {
5             //获取上下文类
6             Context context = new Context(new ConcreteStrategyA());
7             context.ContextInterface();
8         }
9     }

 

策略模式

原文:http://www.cnblogs.com/zhengwei-cq/p/6701895.html

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