From 080838f0e51914806229eb2d0128d71ab59e8f4f Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 23 Aug 2018 09:18:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0VS=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DesignPatternStudy.Learn.csproj | 58 ++++++++++ .../Properties/AssemblyInfo.cs | 36 ++++++ .../NoPattern/NoStrategyPattern.cs | 33 ++++++ .../StrategyPattern/策略模式学习.txt | 1 + DesignPatternStudy.Learn/packages.config | 4 + DesignPatternStudy.Learn/项目说明.txt | 7 ++ .../DesignPatternStudy.LearnTest.csproj | 104 ++++++++++++++++++ .../Properties/AssemblyInfo.cs | 36 ++++++ .../StrategyPattern/NoStrategyPatternTest.cs | 34 ++++++ DesignPatternStudy.LearnTest/packages.config | 16 +++ DesignPatternStudy.LearnTest/xUnitTest.cs | 18 +++ 设计模式学习.sln | 31 ++++++ 12 files changed, 378 insertions(+) create mode 100644 DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj create mode 100644 DesignPatternStudy.Learn/Properties/AssemblyInfo.cs create mode 100644 DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs create mode 100644 DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt create mode 100644 DesignPatternStudy.Learn/packages.config create mode 100644 DesignPatternStudy.Learn/项目说明.txt create mode 100644 DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj create mode 100644 DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs create mode 100644 DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs create mode 100644 DesignPatternStudy.LearnTest/packages.config create mode 100644 DesignPatternStudy.LearnTest/xUnitTest.cs create mode 100644 设计模式学习.sln diff --git a/DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj b/DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj new file mode 100644 index 0000000..52f802f --- /dev/null +++ b/DesignPatternStudy.Learn/DesignPatternStudy.Learn.csproj @@ -0,0 +1,58 @@ + + + + + Debug + AnyCPU + {9CE997BC-ABF1-4AD0-99C2-B97A8BF91659} + Library + Properties + DesignPatternStudy.Learn + DesignPatternStudy.Learn + v4.7 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DesignPatternStudy.Learn/Properties/AssemblyInfo.cs b/DesignPatternStudy.Learn/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b4680f6 --- /dev/null +++ b/DesignPatternStudy.Learn/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("DesignPatternStudy.Learn")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DesignPatternStudy.Learn")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("9ce997bc-abf1-4ad0-99c2-b97a8bf91659")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs b/DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs new file mode 100644 index 0000000..fda1c69 --- /dev/null +++ b/DesignPatternStudy.Learn/StrategyPattern/NoPattern/NoStrategyPattern.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DesignPatternStudy.Learn.StrategyPattern.NoPattern +{ + public class NoStrategyPattern + { + public decimal GetPrice(decimal sourcePrice, int priceType) + { + decimal discountPrice = sourcePrice; + switch (priceType) + { + case 1: + discountPrice = sourcePrice * 0.9m; + break; + case 2: + discountPrice = sourcePrice - 10m; + break; + case 3: + discountPrice = sourcePrice - 100m; + break; + default: + discountPrice = sourcePrice; + break; + } + + return discountPrice; + } + } +} diff --git a/DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt b/DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt new file mode 100644 index 0000000..670c933 --- /dev/null +++ b/DesignPatternStudy.Learn/StrategyPattern/策略模式学习.txt @@ -0,0 +1 @@ +策略模式学习 \ No newline at end of file diff --git a/DesignPatternStudy.Learn/packages.config b/DesignPatternStudy.Learn/packages.config new file mode 100644 index 0000000..08f57a8 --- /dev/null +++ b/DesignPatternStudy.Learn/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/DesignPatternStudy.Learn/项目说明.txt b/DesignPatternStudy.Learn/项目说明.txt new file mode 100644 index 0000000..f9931d8 --- /dev/null +++ b/DesignPatternStudy.Learn/项目说明.txt @@ -0,0 +1,7 @@ +项目说明: + +本项目为学习设计模式而建。 + +基于“《研磨设计模式》跟着CC学设计”。 + +原版中使用Java的实现,转为基于C#的实现。 \ No newline at end of file diff --git a/DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj b/DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj new file mode 100644 index 0000000..f911433 --- /dev/null +++ b/DesignPatternStudy.LearnTest/DesignPatternStudy.LearnTest.csproj @@ -0,0 +1,104 @@ + + + + + + + Debug + AnyCPU + {1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E} + Library + Properties + DesignPatternStudy.LearnTest + DesignPatternStudy.LearnTest + v4.7 + 512 + true + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll + + + ..\packages\Castle.Core.4.3.1\lib\net45\Castle.Core.dll + + + ..\packages\Moq.4.9.0\lib\net45\Moq.dll + + + + + + ..\packages\System.Threading.Tasks.Extensions.4.3.0\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Extensions.dll + + + ..\packages\System.ValueTuple.4.4.0\lib\net47\System.ValueTuple.dll + True + True + + + + + + + + + ..\packages\xunit.abstractions.2.0.2\lib\net35\xunit.abstractions.dll + + + ..\packages\xunit.assert.2.4.0\lib\netstandard2.0\xunit.assert.dll + + + ..\packages\xunit.extensibility.core.2.4.0\lib\net452\xunit.core.dll + + + ..\packages\xunit.extensibility.execution.2.4.0\lib\net452\xunit.execution.desktop.dll + + + + + + + + + + {9ce997bc-abf1-4ad0-99c2-b97a8bf91659} + DesignPatternStudy.Learn + + + + + + + + + + + + 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。 + + + + + + + \ No newline at end of file diff --git a/DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs b/DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fb90538 --- /dev/null +++ b/DesignPatternStudy.LearnTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("DesignPatternStudy.LearnTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DesignPatternStudy.LearnTest")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("1ff6f739-4df3-4c72-89c7-4decfc3c6f9e")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs b/DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs new file mode 100644 index 0000000..d936913 --- /dev/null +++ b/DesignPatternStudy.LearnTest/StrategyPattern/NoStrategyPatternTest.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit; + +using DesignPatternStudy.Learn; +using DesignPatternStudy.Learn.StrategyPattern.NoPattern; + +namespace DesignPatternStudy.Learn.StrategyPattern +{ + public class NoStrategyPatternTest:IDisposable + { + NoStrategyPattern noStrategy; + + public NoStrategyPatternTest() + { + noStrategy = new NoStrategyPattern(); + } + + [Fact] + public void GetPriceTest() + { + var price1 = noStrategy.GetPrice(100m,1); + Assert.Equal(90, price1); + } + + public void Dispose() + { + + } + } +} diff --git a/DesignPatternStudy.LearnTest/packages.config b/DesignPatternStudy.LearnTest/packages.config new file mode 100644 index 0000000..0146749 --- /dev/null +++ b/DesignPatternStudy.LearnTest/packages.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DesignPatternStudy.LearnTest/xUnitTest.cs b/DesignPatternStudy.LearnTest/xUnitTest.cs new file mode 100644 index 0000000..6850cbf --- /dev/null +++ b/DesignPatternStudy.LearnTest/xUnitTest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Xunit; + +namespace DesignPatternStudy.LearnTest +{ + public class xUnitTest + { + [Fact] + public void Test() + { + Assert.True(true, "xUnit环境测试"); + } + } +} diff --git a/设计模式学习.sln b/设计模式学习.sln new file mode 100644 index 0000000..4bf1f2b --- /dev/null +++ b/设计模式学习.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28010.2003 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesignPatternStudy.Learn", "DesignPatternStudy.Learn\DesignPatternStudy.Learn.csproj", "{9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesignPatternStudy.LearnTest", "DesignPatternStudy.LearnTest\DesignPatternStudy.LearnTest.csproj", "{1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9CE997BC-ABF1-4AD0-99C2-B97A8BF91659}.Release|Any CPU.Build.0 = Release|Any CPU + {1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FF6F739-4DF3-4C72-89C7-4DECFC3C6F9E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {90488EA0-2B66-4878-AB50-82BE3EC38CA5} + EndGlobalSection +EndGlobal