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