diff --git a/StrategyPattern/Add.cs b/StrategyPattern/Add.cs new file mode 100644 index 0000000000000000000000000000000000000000..c33c397c6d6c21f707d92c662b293c01ea43994d --- /dev/null +++ b/StrategyPattern/Add.cs @@ -0,0 +1,40 @@ +/* + * ---------------------------------------------------------------- + * Copyright @ Mr.Fu 2022. All rights reserved. + + * 作 者 :Mr.Fu + + * 创建时间 :2022/8/20 10:26:31 + + * CLR 版本 :4.0.30319.42000 + + * 命名空间 :StrategyPattern + + * 类 名 称 :Add + + * 类 描 述 : + + * ------------------------------------------------------ + * 历史更新记录 + + * 版本 : V1.0.0.0 修改时间:2022/8/20 10:26:31 修改人: + + * 修改内容: + * + */ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StrategyPattern +{ + public class Add : ICalculate + { + public double Sum(int num, int num1) + { + Console.WriteLine($"Add:结果{num+num1}"); + return num + num1; + } + } +} diff --git a/StrategyPattern/Division.cs b/StrategyPattern/Division.cs new file mode 100644 index 0000000000000000000000000000000000000000..2c46d3445ade94be0ed29cc3678ece6f85318704 --- /dev/null +++ b/StrategyPattern/Division.cs @@ -0,0 +1,40 @@ +/* + * ---------------------------------------------------------------- + * Copyright @ Mr.Fu 2022. All rights reserved. + + * 作 者 :Mr.Fu + + * 创建时间 :2022/8/20 10:33:57 + + * CLR 版本 :4.0.30319.42000 + + * 命名空间 :StrategyPattern + + * 类 名 称 :Division + + * 类 描 述 : + + * ------------------------------------------------------ + * 历史更新记录 + + * 版本 : V1.0.0.0 修改时间:2022/8/20 10:33:57 修改人: + + * 修改内容: + * + */ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StrategyPattern +{ + public class Division : ICalculate + { + public double Sum(int num, int num1) + { + Console.WriteLine($"division结果为:{(num * 0.1) / (num1 * 0.1)}"); + return (num * 0.1) / (num1 * 0.1); + } + } +} diff --git a/StrategyPattern/ICalculate.cs b/StrategyPattern/ICalculate.cs new file mode 100644 index 0000000000000000000000000000000000000000..a66b3aba8cd3ce6290e4c32815afc2ce514b585e --- /dev/null +++ b/StrategyPattern/ICalculate.cs @@ -0,0 +1,41 @@ +/* + * ---------------------------------------------------------------- + * Copyright @ Mr.Fu 2022. All rights reserved. + + * 作 者 :Mr.Fu + + * 创建时间 :2022/8/20 10:11:38 + + * CLR 版本 :4.0.30319.42000 + + * 命名空间 :StrategyPattern + + * 类 名 称 :Icalculate + + * 类 描 述 : + + * ------------------------------------------------------ + * 历史更新记录 + + * 版本 : V1.0.0.0 修改时间:2022/8/20 10:11:38 修改人: + + * 修改内容: + * + */ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StrategyPattern +{ + public interface ICalculate + { + /// + /// 算数 + /// + /// + /// + double Sum(int num,int num1); + } +} diff --git a/StrategyPattern/Multiplication.cs b/StrategyPattern/Multiplication.cs new file mode 100644 index 0000000000000000000000000000000000000000..306a62c04c09504d5d9db9305e6903cc8c5f635b --- /dev/null +++ b/StrategyPattern/Multiplication.cs @@ -0,0 +1,42 @@ +/* + * ---------------------------------------------------------------- + * Copyright @ Mr.Fu 2022. All rights reserved. + + * 作 者 :Mr.Fu + + * 创建时间 :2022/8/20 10:31:00 + + * CLR 版本 :4.0.30319.42000 + + * 命名空间 :StrategyPattern + + * 类 名 称 :Multiplication + + * 类 描 述 : + + * ------------------------------------------------------ + * 历史更新记录 + + * 版本 : V1.0.0.0 修改时间:2022/8/20 10:31:00 修改人: + + * 修改内容: + * + */ + +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; + +namespace StrategyPattern +{ + public class Multiplication : ICalculate + { + public double Sum(int num, int num1) + { + + Console.WriteLine($"Multiplication结果为:{num* num1}"); + return num * num1; + } + } +} diff --git a/StrategyPattern/Program.cs b/StrategyPattern/Program.cs index ae4d5565b4bf4dd22ef29db3817501c9fc810a78..09ea6703366f37087240de45a68a70cc12eedb0c 100644 --- a/StrategyPattern/Program.cs +++ b/StrategyPattern/Program.cs @@ -4,9 +4,27 @@ namespace StrategyPattern { internal class Program { + /// + /// 策略模式 + /// + /// static void Main(string[] args) { - Console.WriteLine("Hello World!"); + ICalculate calculate = new Add(); + double result = calculate.Sum(1, 2); + Console.WriteLine($"Add:{result}"); + + ICalculate calculate1 = new Division(); + double result1 = calculate1.Sum(1, 2); + Console.WriteLine($"Division:{result1}"); + + ICalculate calculate2 = new Multiplication(); + double result2 = calculate2.Sum(1, 2); + Console.WriteLine($"Multiplication:{result2}"); + + ICalculate calculate3 = new Subtraction(); + double result3 = calculate3.Sum(1, 2); + Console.WriteLine($"Subtraction:{result3}"); } } } diff --git a/StrategyPattern/Subtraction.cs b/StrategyPattern/Subtraction.cs new file mode 100644 index 0000000000000000000000000000000000000000..a3ccf6d65789086ad63abaace4091f5552c2e192 --- /dev/null +++ b/StrategyPattern/Subtraction.cs @@ -0,0 +1,40 @@ +/* + * ---------------------------------------------------------------- + * Copyright @ Mr.Fu 2022. All rights reserved. + + * 作 者 :Mr.Fu + + * 创建时间 :2022/8/20 10:27:47 + + * CLR 版本 :4.0.30319.42000 + + * 命名空间 :StrategyPattern + + * 类 名 称 :Subtraction + + * 类 描 述 : + + * ------------------------------------------------------ + * 历史更新记录 + + * 版本 : V1.0.0.0 修改时间:2022/8/20 10:27:47 修改人: + + * 修改内容: + * + */ + +using System; +using System.Collections.Generic; +using System.Text; + +namespace StrategyPattern +{ + public class Subtraction : ICalculate + { + public double Sum(int num, int num1) + { + Console.WriteLine($"Subtraction结果:{num- num1}"); + return num - num1; + } + } +} diff --git a/StrategyPatternTestProject/StrategyPatternTestProject.csproj b/StrategyPatternTestProject/StrategyPatternTestProject.csproj index 1502b1f1627137c782b60dd6764328c5379538d2..bdf472ee69e82bbd1b26613a04f3da95e5571bfd 100644 --- a/StrategyPatternTestProject/StrategyPatternTestProject.csproj +++ b/StrategyPatternTestProject/StrategyPatternTestProject.csproj @@ -19,4 +19,8 @@ + + + + diff --git a/StrategyPatternTestProject/UnitTest1.cs b/StrategyPatternTestProject/UnitTest1.cs index 14f5888866e6acddf3ce3429d57a8b06c33c9d97..ca463cc4dd03fe0e6e3c5b991ddb363779a9df6a 100644 --- a/StrategyPatternTestProject/UnitTest1.cs +++ b/StrategyPatternTestProject/UnitTest1.cs @@ -1,3 +1,4 @@ +using StrategyPattern; using System; using Xunit; @@ -5,10 +6,39 @@ namespace StrategyPatternTestProject { public class UnitTest1 { - [Fact] - public void Test1() + + + [Theory] + [InlineData(1,2)] + public void AddTest1(int num,int num1) { - - } + ICalculate calculate = new Add(); + double result = calculate.Sum(num,num1); + Assert.Equal(3, result); + } + [Theory] + [InlineData(1, 2)] + public void DivisionTest1(int num, int num1) + { + ICalculate calculate1 = new Division(); + double result1 = calculate1.Sum(num, num1); + Assert.Equal(0.5, result1); + } + [Theory] + [InlineData(1, 2)] + public void MultiplicationTest1(int num, int num1) + { + ICalculate calculate2 = new Multiplication(); + double result2 = calculate2.Sum(num, num1); + Assert.Equal(2, result2); + } + [Theory] + [InlineData(1, 2)] + public void SubtractionTest1(int num, int num1) + { + ICalculate calculate3 = new Subtraction(); + double result3 = calculate3.Sum(num, num1); + Assert.Equal(-1, result3); + } } }