且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

策略模式(Strategy)

更新时间:2022-08-18 17:12:46

策略模式(Strategy)
 1 /*
 2  * 在图书销售时,根据不同类型的图书有不同的折扣,计算金额时必须区别对待,
 3  * 例如计算机类图书7折,英语类图书6折。应用策略模式,用C#控制台应用程序
 4  * 实现该设计。
 5  */
 6 using System;
 7 using System.Collections.Generic;
 8 using System.Linq;
 9 using System.Text;
10 
11 namespace Strategy
12 {
13     abstract class Strategy
14     {
15         public abstract double AlgorithmInterface(double Money);
16     }
17     class CSStrategy : Strategy
18     {
19           public override double AlgorithmInterface(double Money)
20         {
21             Console.WriteLine("计算机类书打七折。");
22             return (Money*0.7);
23         }
24     }
25     class EngStrategy : Strategy
26     {
27        public override double AlgorithmInterface(double Money)
28         {
29             Console.WriteLine("英语类书打六折。");
30             return (Money * 0.6);
31         }
32     }
33     class Context
34     {
35         Strategy strategy;
36         public Context(Strategy strategy)
37         {
38             this.strategy = strategy;
39         }
40         public double GetResult(double Money)
41         {
42             return strategy.AlgorithmInterface(Money);
43         }
44     }
45     class Program
46     {
47         static void Main(string[] args)
48         {
49             Context context;
50             context = new Context(new CSStrategy());
51             Console.WriteLine("需支付" + context.GetResult(100) + "");
52 
53             context = new Context(new EngStrategy());
54             Console.WriteLine("需支付" + context.GetResult(100) + "");
55         }
56     }
57 }
策略模式(Strategy)

 


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/05/16/2505570.html,如需转载请自行联系原作者