diff --git a/.idea/DesignPatterns-Java.iml b/.idea/DesignPatterns-Java.iml
new file mode 100644
index 0000000..f76df2b
--- /dev/null
+++ b/.idea/DesignPatterns-Java.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..7e0b314
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..4987eca
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..ed79d02
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..561e1bb
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..f805530
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,228 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1610975662710
+
+
+ 1610975662710
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/java-des/src/com/java/design/singleton/EnumSingleton.java b/java-des/src/com/java/design/singleton/EnumSingleton.java
deleted file mode 100644
index 45fa55a..0000000
--- a/java-des/src/com/java/design/singleton/EnumSingleton.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.java.design.singleton;
-
-/**
- * 枚举实现单例 最佳
- * 避免反射攻击、避免序列化问题
- *
- * @author Administrator
- *
- */
-public class EnumSingleton {
-
- INSTANCE;
-
- public EnumSingleton getInstance() {
- return INSTANCE;
- }
-}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..53a9675
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,16 @@
+
+
+
+ 4.0.0
+
+ com.java
+ DesignPatterns-Java
+ 1.0-SNAPSHOT
+
+
+ 1.8
+
+
+
+
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/META-INF/DesignPatterns-Java.kotlin_module b/production/DesignPatterns-Java/production/DesignPatterns-Java/META-INF/DesignPatterns-Java.kotlin_module
new file mode 100644
index 0000000..a49347a
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/META-INF/DesignPatterns-Java.kotlin_module differ
diff --git a/java-des/src/com/java/design/README.md b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/README.md
similarity index 100%
rename from java-des/src/com/java/design/README.md
rename to production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/README.md
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/AbstractFactoryPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/AbstractFactoryPattern.class
new file mode 100644
index 0000000..633d414
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/AbstractFactoryPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackAnimalFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackAnimalFactory.class
new file mode 100644
index 0000000..7466186
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackAnimalFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackCat.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackCat.class
new file mode 100644
index 0000000..b59bb54
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackCat.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackDog.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackDog.class
new file mode 100644
index 0000000..865351d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/BlackDog.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/IAnimalFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/IAnimalFactory.class
new file mode 100644
index 0000000..c21c36a
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/IAnimalFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/ICat.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/ICat.class
new file mode 100644
index 0000000..8082f53
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/ICat.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/IDog.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/IDog.class
new file mode 100644
index 0000000..7e88136
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/IDog.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteAnimalFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteAnimalFactory.class
new file mode 100644
index 0000000..38c3eb2
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteAnimalFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteCat.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteCat.class
new file mode 100644
index 0000000..d4465f0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteCat.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteDog.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteDog.class
new file mode 100644
index 0000000..1a79194
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/abstractfactory/WhiteDog.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Adaptee.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Adaptee.class
new file mode 100644
index 0000000..e2afae0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Adaptee.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Adapter.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Adapter.class
new file mode 100644
index 0000000..b453105
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Adapter.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/AdapterPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/AdapterPattern.class
new file mode 100644
index 0000000..019ae9d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/AdapterPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Target.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Target.class
new file mode 100644
index 0000000..dfe70d1
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/adapter/Target.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/BlackShoe.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/BlackShoe.class
new file mode 100644
index 0000000..bd5335f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/BlackShoe.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/BridgePattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/BridgePattern.class
new file mode 100644
index 0000000..88dffa2
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/BridgePattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Clothing.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Clothing.class
new file mode 100644
index 0000000..947a27b
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Clothing.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Lady.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Lady.class
new file mode 100644
index 0000000..510fb31
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Lady.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Man.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Man.class
new file mode 100644
index 0000000..fa4b2f9
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Man.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Person.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Person.class
new file mode 100644
index 0000000..c8b6a6d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/Person.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/WhiteShoe.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/WhiteShoe.class
new file mode 100644
index 0000000..44a827b
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/bridge/WhiteShoe.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/BuilderPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/BuilderPattern.class
new file mode 100644
index 0000000..5cd03a1
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/BuilderPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/Man.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/Man.class
new file mode 100644
index 0000000..abb2919
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/Man.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ManBuilder.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ManBuilder.class
new file mode 100644
index 0000000..d85ff9c
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ManBuilder.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/Person.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/Person.class
new file mode 100644
index 0000000..795572d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/Person.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/PersonBuilder.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/PersonBuilder.class
new file mode 100644
index 0000000..7d082ab
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/PersonBuilder.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/PersonDirector.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/PersonDirector.class
new file mode 100644
index 0000000..d9cfcd1
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/PersonDirector.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Builder.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Builder.class
new file mode 100644
index 0000000..adff00f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Builder.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/ConcreteBuilder.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/ConcreteBuilder.class
new file mode 100644
index 0000000..c79fdcf
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/ConcreteBuilder.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Director.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Director.class
new file mode 100644
index 0000000..38a14c0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Director.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Main.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Main.class
new file mode 100644
index 0000000..ee48c76
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Main.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Product.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Product.class
new file mode 100644
index 0000000..3281389
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/build/ws/Product.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/AbstractAction.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/AbstractAction.class
new file mode 100644
index 0000000..0ba40c0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/AbstractAction.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/AbstractReceiver.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/AbstractReceiver.class
new file mode 100644
index 0000000..ccbdaf4
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/AbstractReceiver.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ActionA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ActionA.class
new file mode 100644
index 0000000..1be87ab
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ActionA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ActionB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ActionB.class
new file mode 100644
index 0000000..fb34c45
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ActionB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/CommandPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/CommandPattern.class
new file mode 100644
index 0000000..cb97ad0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/CommandPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/Invoker.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/Invoker.class
new file mode 100644
index 0000000..e9aa2f4
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/Invoker.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ReceiverA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ReceiverA.class
new file mode 100644
index 0000000..07b6ada
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ReceiverA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ReceiverB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ReceiverB.class
new file mode 100644
index 0000000..452cd18
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/command/ReceiverB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Component.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Component.class
new file mode 100644
index 0000000..1ada5cd
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Component.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Composite.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Composite.class
new file mode 100644
index 0000000..566fdeb
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Composite.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/CompositePattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/CompositePattern.class
new file mode 100644
index 0000000..f5a4c79
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/CompositePattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Leaf.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Leaf.class
new file mode 100644
index 0000000..a87ba7f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/composite/Leaf.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Decorator.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Decorator.class
new file mode 100644
index 0000000..b1d1756
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Decorator.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/DecoratorPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/DecoratorPattern.class
new file mode 100644
index 0000000..6d45630
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/DecoratorPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Man.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Man.class
new file mode 100644
index 0000000..7eece0b
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Man.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/ManDecoratorA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/ManDecoratorA.class
new file mode 100644
index 0000000..5a1db06
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/ManDecoratorA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/ManDecoratorB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/ManDecoratorB.class
new file mode 100644
index 0000000..82a1158
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/ManDecoratorB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Person.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Person.class
new file mode 100644
index 0000000..f745de6
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/decorator/Person.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/Facade.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/Facade.class
new file mode 100644
index 0000000..9a19a1b
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/Facade.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/FacadePattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/FacadePattern.class
new file mode 100644
index 0000000..3d33ec3
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/FacadePattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceA.class
new file mode 100644
index 0000000..962a234
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceAImpl.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceAImpl.class
new file mode 100644
index 0000000..109993a
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceAImpl.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceB.class
new file mode 100644
index 0000000..1a675ac
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceBImpl.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceBImpl.class
new file mode 100644
index 0000000..c2607ed
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceBImpl.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceC.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceC.class
new file mode 100644
index 0000000..1254717
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceC.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceCImpl.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceCImpl.class
new file mode 100644
index 0000000..d12ea18
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/facade/ServiceCImpl.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/FactoryMethodPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/FactoryMethodPattern.class
new file mode 100644
index 0000000..a098fbb
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/FactoryMethodPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/IWorkFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/IWorkFactory.class
new file mode 100644
index 0000000..289f818
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/IWorkFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/StudentWork.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/StudentWork.class
new file mode 100644
index 0000000..1819f5c
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/StudentWork.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/StudentWorkFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/StudentWorkFactory.class
new file mode 100644
index 0000000..95d6396
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/StudentWorkFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/TeacherWork.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/TeacherWork.class
new file mode 100644
index 0000000..2b04111
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/TeacherWork.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/TeacherWorkFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/TeacherWorkFactory.class
new file mode 100644
index 0000000..806fe42
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/TeacherWorkFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/Work.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/Work.class
new file mode 100644
index 0000000..dbe11c2
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/Work.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BCCar.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BCCar.class
new file mode 100644
index 0000000..a81b42f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BCCar.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BCCarFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BCCarFactory.class
new file mode 100644
index 0000000..8b3fe33
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BCCarFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BMCar.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BMCar.class
new file mode 100644
index 0000000..adb0bc9
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BMCar.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BMCarFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BMCarFactory.class
new file mode 100644
index 0000000..773272e
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/BMCarFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/FactroyMethod.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/FactroyMethod.class
new file mode 100644
index 0000000..5bc9ffc
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/FactroyMethod.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/ICar.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/ICar.class
new file mode 100644
index 0000000..c1effe0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/ICar.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/ICarFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/ICarFactory.class
new file mode 100644
index 0000000..d94c519
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/factorymethod/ws/ICarFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeight.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeight.class
new file mode 100644
index 0000000..78ea6ad
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeight.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeightFactory.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeightFactory.class
new file mode 100644
index 0000000..e978933
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeightFactory.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeightImpl.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeightImpl.class
new file mode 100644
index 0000000..64da625
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyWeightImpl.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyweightPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyweightPattern.class
new file mode 100644
index 0000000..f0f5e8a
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/flyweight/FlyweightPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/AdvanceExpression.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/AdvanceExpression.class
new file mode 100644
index 0000000..0ba1065
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/AdvanceExpression.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/Context.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/Context.class
new file mode 100644
index 0000000..0828d82
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/Context.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/Expression.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/Expression.class
new file mode 100644
index 0000000..29b347e
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/Expression.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/InterpreterPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/InterpreterPattern.class
new file mode 100644
index 0000000..4f7d7a1
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/InterpreterPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/SimpleExpression.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/SimpleExpression.class
new file mode 100644
index 0000000..9d19c27
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/interpreter/SimpleExpression.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/Iterator.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/Iterator.class
new file mode 100644
index 0000000..4ac9e44
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/Iterator.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/IteratorImpl.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/IteratorImpl.class
new file mode 100644
index 0000000..a55547f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/IteratorImpl.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/IteratorPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/IteratorPattern.class
new file mode 100644
index 0000000..f230b41
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/IteratorPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/List.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/List.class
new file mode 100644
index 0000000..9d57552
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/List.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/ListImpl.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/ListImpl.class
new file mode 100644
index 0000000..a15796f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/iterator/ListImpl.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/Colleague.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/Colleague.class
new file mode 100644
index 0000000..ba82929
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/Colleague.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ColleagueA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ColleagueA.class
new file mode 100644
index 0000000..b4ef0ab
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ColleagueA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ColleagueB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ColleagueB.class
new file mode 100644
index 0000000..79842b0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ColleagueB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ConcreteMediator.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ConcreteMediator.class
new file mode 100644
index 0000000..481743d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/ConcreteMediator.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/Mediator.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/Mediator.class
new file mode 100644
index 0000000..4b76ebc
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/Mediator.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/MediatorPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/MediatorPattern.class
new file mode 100644
index 0000000..2d2ecd6
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/mediator/MediatorPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Caretaker.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Caretaker.class
new file mode 100644
index 0000000..45b3413
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Caretaker.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Memento.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Memento.class
new file mode 100644
index 0000000..4438fbd
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Memento.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/MementoPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/MementoPattern.class
new file mode 100644
index 0000000..3a5bfee
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/MementoPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Originator.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Originator.class
new file mode 100644
index 0000000..4e93bdd
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/memento/Originator.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/Observer.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/Observer.class
new file mode 100644
index 0000000..0ddc3a7
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/Observer.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/ObserverPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/ObserverPattern.class
new file mode 100644
index 0000000..ff917b8
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/ObserverPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/ObserverServer.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/ObserverServer.class
new file mode 100644
index 0000000..73c8746
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/ObserverServer.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/Observerable.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/Observerable.class
new file mode 100644
index 0000000..f4161a0
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/Observerable.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/User.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/User.class
new file mode 100644
index 0000000..d576e6b
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/observer/User.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/ConcreatePrototype.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/ConcreatePrototype.class
new file mode 100644
index 0000000..e184a3d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/ConcreatePrototype.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/Prototype.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/Prototype.class
new file mode 100644
index 0000000..c12214d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/Prototype.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/PrototypePattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/PrototypePattern.class
new file mode 100644
index 0000000..e6a3360
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/prototype/PrototypePattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/Dog.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/Dog.class
new file mode 100644
index 0000000..46f20ef
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/Dog.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/DogImpl.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/DogImpl.class
new file mode 100644
index 0000000..a226a47
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/DogImpl.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/DogProxy.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/DogProxy.class
new file mode 100644
index 0000000..846d37f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/DogProxy.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ProxyPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ProxyPattern.class
new file mode 100644
index 0000000..310ca66
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ProxyPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/BlackCat.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/BlackCat.class
new file mode 100644
index 0000000..1fa6216
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/BlackCat.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/Cat.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/Cat.class
new file mode 100644
index 0000000..a4b5b90
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/Cat.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/Main.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/Main.class
new file mode 100644
index 0000000..3a76c8b
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/Main.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/ProxyCat.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/ProxyCat.class
new file mode 100644
index 0000000..d3c44fb
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/proxy/ws/ProxyCat.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/AddMoneyRequest.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/AddMoneyRequest.class
new file mode 100644
index 0000000..3f89ea4
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/AddMoneyRequest.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/DimissionRequest.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/DimissionRequest.class
new file mode 100644
index 0000000..45c956f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/DimissionRequest.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/HRRequestHandle.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/HRRequestHandle.class
new file mode 100644
index 0000000..b9e7be6
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/HRRequestHandle.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/PMRequestHandle.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/PMRequestHandle.class
new file mode 100644
index 0000000..f06245d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/PMRequestHandle.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/Request.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/Request.class
new file mode 100644
index 0000000..4a79b99
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/Request.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/RequestHandler.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/RequestHandler.class
new file mode 100644
index 0000000..49f0ed3
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/RequestHandler.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/ResponsibilityPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/ResponsibilityPattern.class
new file mode 100644
index 0000000..55247b1
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/responsibility/ResponsibilityPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonA.class
new file mode 100644
index 0000000..0ba042f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonB.class
new file mode 100644
index 0000000..0daab99
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonC.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonC.class
new file mode 100644
index 0000000..5402b37
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonC.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD$1.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD$1.class
new file mode 100644
index 0000000..dce9af6
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD$1.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD$SingletonHolder.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD$SingletonHolder.class
new file mode 100644
index 0000000..2db5067
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD$SingletonHolder.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD.class
new file mode 100644
index 0000000..6b0ab90
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/singleton/SingletonD.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/Context.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/Context.class
new file mode 100644
index 0000000..79d3400
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/Context.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/Rain.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/Rain.class
new file mode 100644
index 0000000..0116675
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/Rain.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/State.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/State.class
new file mode 100644
index 0000000..eec7423
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/State.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/StatePattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/StatePattern.class
new file mode 100644
index 0000000..2a65100
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/StatePattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/SunShine.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/SunShine.class
new file mode 100644
index 0000000..c0c6670
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/state/SunShine.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/CalculateStrategy.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/CalculateStrategy.class
new file mode 100644
index 0000000..651c50d
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/CalculateStrategy.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/Strategy.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/Strategy.class
new file mode 100644
index 0000000..af34142
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/Strategy.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/StrategyPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/StrategyPattern.class
new file mode 100644
index 0000000..0ba7f82
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/StrategyPattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/TranficCalculator.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/TranficCalculator.class
new file mode 100644
index 0000000..19f1039
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/strategy/TranficCalculator.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarA.class
new file mode 100644
index 0000000..41c6a8f
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarB.class
new file mode 100644
index 0000000..f60616a
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarModel.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarModel.class
new file mode 100644
index 0000000..ab424cc
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/CarModel.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/TemplatePattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/TemplatePattern.class
new file mode 100644
index 0000000..d41ede4
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/template/TemplatePattern.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/BodyA.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/BodyA.class
new file mode 100644
index 0000000..3ae6549
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/BodyA.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/BodyB.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/BodyB.class
new file mode 100644
index 0000000..bb2cab9
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/BodyB.class differ
diff --git a/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/VisitorPattern.class b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/VisitorPattern.class
new file mode 100644
index 0000000..b12e671
Binary files /dev/null and b/production/DesignPatterns-Java/production/DesignPatterns-Java/com/java/design/visitor/VisitorPattern.class differ
diff --git a/src/main/java/com/java/design/README.md b/src/main/java/com/java/design/README.md
new file mode 100644
index 0000000..1b2ae81
--- /dev/null
+++ b/src/main/java/com/java/design/README.md
@@ -0,0 +1,31 @@
+
+### Java 23 种设计模式,包含 Demo 实例,帮助有效快速理解使用场景。
+
+- 行为型模式
+ + [命令模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/command)
+ + [解释器模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/interpreter)
+ + [迭代器模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/iterator)
+ + [中介者模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/mediator)
+ + [备忘录模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/memento)
+ + [观察者模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/observer)
+ + [责任链模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/responsibility)
+ + [状态模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/state)
+ + [策略模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/strategy)
+ + [模板模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/template)
+ + [访问者模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/visitor)
+
+- 结构型模式
+ + [适配器模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/adapter)
+ + [桥接模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/bridge)
+ + [组合模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/composite)
+ + [装饰模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/decorator)
+ + [外观模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/facade)
+ + [享元模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/flyweight)
+ + [代理模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/proxy)
+
+- 创建型模式
+ + [抽象工厂模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/abstractfactory)
+ + [建造者模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/build)
+ + [工厂方法](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/factorymethod)
+ + [原型模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/prototype)
+ + [单例模式](https://github.com/Folgerjun/DesignPatterns-Java/tree/master/java-des/src/com/java/design/singleton)
\ No newline at end of file
diff --git a/java-des/src/com/java/design/abstractfactory/AbstractFactoryPattern.java b/src/main/java/com/java/design/abstractfactory/AbstractFactoryPattern.java
similarity index 96%
rename from java-des/src/com/java/design/abstractfactory/AbstractFactoryPattern.java
rename to src/main/java/com/java/design/abstractfactory/AbstractFactoryPattern.java
index 91c23b5..0fd969a 100644
--- a/java-des/src/com/java/design/abstractfactory/AbstractFactoryPattern.java
+++ b/src/main/java/com/java/design/abstractfactory/AbstractFactoryPattern.java
@@ -1,31 +1,31 @@
-package com.java.design.abstractfactory;
-
-
-/**
- * 抽象工厂模式 ----- > 就是对一组具有相同主题的工厂进行封装(维基百科解释的很到位);
- *
- * 例如:生产一台PC机,使用工厂方法模式的话,一般会有cpu工厂,内存工厂,显卡工厂...但是使用抽象工厂模式的话,只有一个工厂就是PC工厂,
- * 但是一个PC工厂涵盖了cpu工厂,内存工厂,显卡工厂等要做的所有事;
- *
- * @author Administrator
- *
- */
-public class AbstractFactoryPattern {
-
- public static void main(String[] args) {
-
- IAnimalFactory blackAnimalFactory = new BlackAnimalFactory();
- ICat blackCat = blackAnimalFactory.createCat();
- IDog blackDog = blackAnimalFactory.createDog();
- blackCat.eat();
- blackDog.eat();
-
- IAnimalFactory whiteAnimalFactory = new WhiteAnimalFactory();
- ICat whiteCat = whiteAnimalFactory.createCat();
- IDog whiteDog = whiteAnimalFactory.createDog();
- whiteCat.eat();
- whiteDog.eat();
-
- }
-
-}
+package com.java.design.abstractfactory;
+
+
+/**
+ * 抽象工厂模式 ----- > 就是对一组具有相同主题的工厂进行封装(维基百科解释的很到位);
+ *
+ * 例如:生产一台PC机,使用工厂方法模式的话,一般会有cpu工厂,内存工厂,显卡工厂...但是使用抽象工厂模式的话,只有一个工厂就是PC工厂,
+ * 但是一个PC工厂涵盖了cpu工厂,内存工厂,显卡工厂等要做的所有事;
+ *
+ * @author Administrator
+ *
+ */
+public class AbstractFactoryPattern {
+
+ public static void main(String[] args) {
+
+ IAnimalFactory blackAnimalFactory = new BlackAnimalFactory();
+ ICat blackCat = blackAnimalFactory.createCat();
+ IDog blackDog = blackAnimalFactory.createDog();
+ blackCat.eat();
+ blackDog.eat();
+
+ IAnimalFactory whiteAnimalFactory = new WhiteAnimalFactory();
+ ICat whiteCat = whiteAnimalFactory.createCat();
+ IDog whiteDog = whiteAnimalFactory.createDog();
+ whiteCat.eat();
+ whiteDog.eat();
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/abstractfactory/BlackAnimalFactory.java b/src/main/java/com/java/design/abstractfactory/BlackAnimalFactory.java
similarity index 94%
rename from java-des/src/com/java/design/abstractfactory/BlackAnimalFactory.java
rename to src/main/java/com/java/design/abstractfactory/BlackAnimalFactory.java
index 8e981c7..7db0498 100644
--- a/java-des/src/com/java/design/abstractfactory/BlackAnimalFactory.java
+++ b/src/main/java/com/java/design/abstractfactory/BlackAnimalFactory.java
@@ -1,14 +1,14 @@
-package com.java.design.abstractfactory;
-
-public class BlackAnimalFactory implements IAnimalFactory {
-
- @Override
- public ICat createCat() {
- return new BlackCat();
- }
-
- @Override
- public IDog createDog() {
- return new BlackDog();
- }
-}
+package com.java.design.abstractfactory;
+
+public class BlackAnimalFactory implements IAnimalFactory {
+
+ @Override
+ public ICat createCat() {
+ return new BlackCat();
+ }
+
+ @Override
+ public IDog createDog() {
+ return new BlackDog();
+ }
+}
diff --git a/java-des/src/com/java/design/abstractfactory/BlackCat.java b/src/main/java/com/java/design/abstractfactory/BlackCat.java
similarity index 94%
rename from java-des/src/com/java/design/abstractfactory/BlackCat.java
rename to src/main/java/com/java/design/abstractfactory/BlackCat.java
index e71239b..fc1a2ce 100644
--- a/java-des/src/com/java/design/abstractfactory/BlackCat.java
+++ b/src/main/java/com/java/design/abstractfactory/BlackCat.java
@@ -1,10 +1,10 @@
-package com.java.design.abstractfactory;
-
-public class BlackCat implements ICat {
-
- @Override
- public void eat() {
-
- System.out.println("Black Cat eating...");
- }
-}
+package com.java.design.abstractfactory;
+
+public class BlackCat implements ICat {
+
+ @Override
+ public void eat() {
+
+ System.out.println("Black Cat eating...");
+ }
+}
diff --git a/java-des/src/com/java/design/abstractfactory/BlackDog.java b/src/main/java/com/java/design/abstractfactory/BlackDog.java
similarity index 94%
rename from java-des/src/com/java/design/abstractfactory/BlackDog.java
rename to src/main/java/com/java/design/abstractfactory/BlackDog.java
index 0a0f339..a25af39 100644
--- a/java-des/src/com/java/design/abstractfactory/BlackDog.java
+++ b/src/main/java/com/java/design/abstractfactory/BlackDog.java
@@ -1,10 +1,10 @@
-package com.java.design.abstractfactory;
-
-public class BlackDog implements IDog {
-
- @Override
- public void eat() {
-
- System.out.println("Black Dog eating...");
- }
-}
+package com.java.design.abstractfactory;
+
+public class BlackDog implements IDog {
+
+ @Override
+ public void eat() {
+
+ System.out.println("Black Dog eating...");
+ }
+}
diff --git a/java-des/src/com/java/design/abstractfactory/IAnimalFactory.java b/src/main/java/com/java/design/abstractfactory/IAnimalFactory.java
similarity index 92%
rename from java-des/src/com/java/design/abstractfactory/IAnimalFactory.java
rename to src/main/java/com/java/design/abstractfactory/IAnimalFactory.java
index 2721d52..73ee8d6 100644
--- a/java-des/src/com/java/design/abstractfactory/IAnimalFactory.java
+++ b/src/main/java/com/java/design/abstractfactory/IAnimalFactory.java
@@ -1,9 +1,9 @@
-package com.java.design.abstractfactory;
-
-public interface IAnimalFactory {
-
- ICat createCat();
-
- IDog createDog();
-
-}
+package com.java.design.abstractfactory;
+
+public interface IAnimalFactory {
+
+ ICat createCat();
+
+ IDog createDog();
+
+}
diff --git a/java-des/src/com/java/design/abstractfactory/ICat.java b/src/main/java/com/java/design/abstractfactory/ICat.java
similarity index 92%
rename from java-des/src/com/java/design/abstractfactory/ICat.java
rename to src/main/java/com/java/design/abstractfactory/ICat.java
index 36cb287..392cf34 100644
--- a/java-des/src/com/java/design/abstractfactory/ICat.java
+++ b/src/main/java/com/java/design/abstractfactory/ICat.java
@@ -1,7 +1,7 @@
-package com.java.design.abstractfactory;
-
-public interface ICat {
-
- void eat();
-
-}
+package com.java.design.abstractfactory;
+
+public interface ICat {
+
+ void eat();
+
+}
diff --git a/java-des/src/com/java/design/abstractfactory/IDog.java b/src/main/java/com/java/design/abstractfactory/IDog.java
similarity index 93%
rename from java-des/src/com/java/design/abstractfactory/IDog.java
rename to src/main/java/com/java/design/abstractfactory/IDog.java
index f3e668f..e0932ee 100644
--- a/java-des/src/com/java/design/abstractfactory/IDog.java
+++ b/src/main/java/com/java/design/abstractfactory/IDog.java
@@ -1,6 +1,6 @@
-package com.java.design.abstractfactory;
-
-public interface IDog {
-
- void eat();
-}
+package com.java.design.abstractfactory;
+
+public interface IDog {
+
+ void eat();
+}
diff --git a/java-des/src/com/java/design/abstractfactory/WhiteAnimalFactory.java b/src/main/java/com/java/design/abstractfactory/WhiteAnimalFactory.java
similarity index 94%
rename from java-des/src/com/java/design/abstractfactory/WhiteAnimalFactory.java
rename to src/main/java/com/java/design/abstractfactory/WhiteAnimalFactory.java
index b8d2eba..97c68d0 100644
--- a/java-des/src/com/java/design/abstractfactory/WhiteAnimalFactory.java
+++ b/src/main/java/com/java/design/abstractfactory/WhiteAnimalFactory.java
@@ -1,14 +1,14 @@
-package com.java.design.abstractfactory;
-
-public class WhiteAnimalFactory implements IAnimalFactory {
-
- @Override
- public ICat createCat() {
- return new WhiteCat();
- }
-
- @Override
- public IDog createDog() {
- return new WhiteDog();
- }
-}
+package com.java.design.abstractfactory;
+
+public class WhiteAnimalFactory implements IAnimalFactory {
+
+ @Override
+ public ICat createCat() {
+ return new WhiteCat();
+ }
+
+ @Override
+ public IDog createDog() {
+ return new WhiteDog();
+ }
+}
diff --git a/java-des/src/com/java/design/abstractfactory/WhiteCat.java b/src/main/java/com/java/design/abstractfactory/WhiteCat.java
similarity index 93%
rename from java-des/src/com/java/design/abstractfactory/WhiteCat.java
rename to src/main/java/com/java/design/abstractfactory/WhiteCat.java
index 6d8b080..44c7c7e 100644
--- a/java-des/src/com/java/design/abstractfactory/WhiteCat.java
+++ b/src/main/java/com/java/design/abstractfactory/WhiteCat.java
@@ -1,11 +1,11 @@
-package com.java.design.abstractfactory;
-
-public class WhiteCat implements ICat {
-
- @Override
- public void eat() {
-
- System.out.println("White Cat eating...");
- }
-
-}
+package com.java.design.abstractfactory;
+
+public class WhiteCat implements ICat {
+
+ @Override
+ public void eat() {
+
+ System.out.println("White Cat eating...");
+ }
+
+}
diff --git a/java-des/src/com/java/design/abstractfactory/WhiteDog.java b/src/main/java/com/java/design/abstractfactory/WhiteDog.java
similarity index 94%
rename from java-des/src/com/java/design/abstractfactory/WhiteDog.java
rename to src/main/java/com/java/design/abstractfactory/WhiteDog.java
index ef7eb94..623cd0d 100644
--- a/java-des/src/com/java/design/abstractfactory/WhiteDog.java
+++ b/src/main/java/com/java/design/abstractfactory/WhiteDog.java
@@ -1,10 +1,10 @@
-package com.java.design.abstractfactory;
-
-public class WhiteDog implements IDog {
-
- @Override
- public void eat() {
-
- System.out.println("White Dog eating...");
- }
-}
+package com.java.design.abstractfactory;
+
+public class WhiteDog implements IDog {
+
+ @Override
+ public void eat() {
+
+ System.out.println("White Dog eating...");
+ }
+}
diff --git a/java-des/src/com/java/design/adapter/Adaptee.java b/src/main/java/com/java/design/adapter/Adaptee.java
similarity index 94%
rename from java-des/src/com/java/design/adapter/Adaptee.java
rename to src/main/java/com/java/design/adapter/Adaptee.java
index a480e27..008d875 100644
--- a/java-des/src/com/java/design/adapter/Adaptee.java
+++ b/src/main/java/com/java/design/adapter/Adaptee.java
@@ -1,8 +1,8 @@
-package com.java.design.adapter;
-
-public class Adaptee {
-
- public void adapteeMethod() {
- System.out.println("Adaptee Method ...");
- }
-}
+package com.java.design.adapter;
+
+public class Adaptee {
+
+ public void adapteeMethod() {
+ System.out.println("Adaptee Method ...");
+ }
+}
diff --git a/java-des/src/com/java/design/adapter/Adapter.java b/src/main/java/com/java/design/adapter/Adapter.java
similarity index 94%
rename from java-des/src/com/java/design/adapter/Adapter.java
rename to src/main/java/com/java/design/adapter/Adapter.java
index 8b72d5e..75d4b30 100644
--- a/java-des/src/com/java/design/adapter/Adapter.java
+++ b/src/main/java/com/java/design/adapter/Adapter.java
@@ -1,20 +1,20 @@
-package com.java.design.adapter;
-
-public class Adapter implements Target {
-
- private Adaptee adaptee;
-
- public Adapter(Adaptee adaptee) {
-
- this.adaptee = adaptee;
- }
-
- public void adapteeMethod() {
- adaptee.adapteeMethod();
- };
-
- @Override
- public void adapterMethod() {
- System.out.println("Adapter Method ...");
- }
-}
+package com.java.design.adapter;
+
+public class Adapter implements Target {
+
+ private Adaptee adaptee;
+
+ public Adapter(Adaptee adaptee) {
+
+ this.adaptee = adaptee;
+ }
+
+ public void adapteeMethod() {
+ adaptee.adapteeMethod();
+ };
+
+ @Override
+ public void adapterMethod() {
+ System.out.println("Adapter Method ...");
+ }
+}
diff --git a/java-des/src/com/java/design/adapter/AdapterPattern.java b/src/main/java/com/java/design/adapter/AdapterPattern.java
similarity index 96%
rename from java-des/src/com/java/design/adapter/AdapterPattern.java
rename to src/main/java/com/java/design/adapter/AdapterPattern.java
index 877075d..75cd2b0 100644
--- a/java-des/src/com/java/design/adapter/AdapterPattern.java
+++ b/src/main/java/com/java/design/adapter/AdapterPattern.java
@@ -1,22 +1,22 @@
-package com.java.design.adapter;
-
-/**
- * 适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。
- *
- * 适配器模式有两种:类适配器、对象适配器、接口适配器
- *
- * 前二者在实现上有些许区别,作用一样,第三个接口适配器差别较大。
- *
- * @author Administrator
- *
- */
-public class AdapterPattern {
-
- public static void main(String[] args) {
-
- Target target = new Adapter(new Adaptee());
- target.adapteeMethod();
- target.adapterMethod();
- }
-
-}
+package com.java.design.adapter;
+
+/**
+ * 适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。
+ *
+ * 适配器模式有两种:类适配器、对象适配器、接口适配器
+ *
+ * 前二者在实现上有些许区别,作用一样,第三个接口适配器差别较大。
+ *
+ * @author Administrator
+ *
+ */
+public class AdapterPattern {
+
+ public static void main(String[] args) {
+
+ Target target = new Adapter(new Adaptee());
+ target.adapteeMethod();
+ target.adapterMethod();
+ }
+
+}
diff --git a/java-des/src/com/java/design/adapter/Target.java b/src/main/java/com/java/design/adapter/Target.java
similarity index 93%
rename from java-des/src/com/java/design/adapter/Target.java
rename to src/main/java/com/java/design/adapter/Target.java
index a14f389..7167532 100644
--- a/java-des/src/com/java/design/adapter/Target.java
+++ b/src/main/java/com/java/design/adapter/Target.java
@@ -1,8 +1,8 @@
-package com.java.design.adapter;
-
-public interface Target {
-
- void adapteeMethod();
-
- void adapterMethod();
-}
+package com.java.design.adapter;
+
+public interface Target {
+
+ void adapteeMethod();
+
+ void adapterMethod();
+}
diff --git a/java-des/src/com/java/design/bridge/BlackShoe.java b/src/main/java/com/java/design/bridge/BlackShoe.java
similarity index 95%
rename from java-des/src/com/java/design/bridge/BlackShoe.java
rename to src/main/java/com/java/design/bridge/BlackShoe.java
index decb3b7..c63edd4 100644
--- a/java-des/src/com/java/design/bridge/BlackShoe.java
+++ b/src/main/java/com/java/design/bridge/BlackShoe.java
@@ -1,10 +1,10 @@
-package com.java.design.bridge;
-
-public class BlackShoe extends Clothing {
-
- @Override
- public void personDressCloth(Person person) {
-
- System.out.println(person.getType() + "cloth black shoe ...");
- }
-}
+package com.java.design.bridge;
+
+public class BlackShoe extends Clothing {
+
+ @Override
+ public void personDressCloth(Person person) {
+
+ System.out.println(person.getType() + "cloth black shoe ...");
+ }
+}
diff --git a/java-des/src/com/java/design/bridge/BridgePattern.java b/src/main/java/com/java/design/bridge/BridgePattern.java
similarity index 94%
rename from java-des/src/com/java/design/bridge/BridgePattern.java
rename to src/main/java/com/java/design/bridge/BridgePattern.java
index 63be7f5..f0afe85 100644
--- a/java-des/src/com/java/design/bridge/BridgePattern.java
+++ b/src/main/java/com/java/design/bridge/BridgePattern.java
@@ -1,28 +1,28 @@
-package com.java.design.bridge;
-
-/**
- * 桥接模式 -----> 将抽象部分与它实现部分分离,使他们都可以独立变化
- *
- * @author Administrator
- *
- */
-public class BridgePattern {
-
- public static void main(String[] args) {
-
- Man man = new Man();
-
- Lady lady = new Lady();
-
- Clothing blackShoe = new BlackShoe();
-
- Clothing whiteShoe = new WhiteShoe();
-
- blackShoe.personDressCloth(man);
- blackShoe.personDressCloth(lady);
-
- whiteShoe.personDressCloth(man);
- whiteShoe.personDressCloth(lady);
-
- }
-}
+package com.java.design.bridge;
+
+/**
+ * 桥接模式 -----> 将抽象部分与它实现部分分离,使他们都可以独立变化
+ *
+ * @author Administrator
+ *
+ */
+public class BridgePattern {
+
+ public static void main(String[] args) {
+
+ Man man = new Man();
+
+ Lady lady = new Lady();
+
+ Clothing blackShoe = new BlackShoe();
+
+ Clothing whiteShoe = new WhiteShoe();
+
+ blackShoe.personDressCloth(man);
+ blackShoe.personDressCloth(lady);
+
+ whiteShoe.personDressCloth(man);
+ whiteShoe.personDressCloth(lady);
+
+ }
+}
diff --git a/java-des/src/com/java/design/bridge/Clothing.java b/src/main/java/com/java/design/bridge/Clothing.java
similarity index 94%
rename from java-des/src/com/java/design/bridge/Clothing.java
rename to src/main/java/com/java/design/bridge/Clothing.java
index 740160c..e3f2901 100644
--- a/java-des/src/com/java/design/bridge/Clothing.java
+++ b/src/main/java/com/java/design/bridge/Clothing.java
@@ -1,7 +1,7 @@
-package com.java.design.bridge;
-
-public abstract class Clothing {
-
- public abstract void personDressCloth(Person person);
-
-}
+package com.java.design.bridge;
+
+public abstract class Clothing {
+
+ public abstract void personDressCloth(Person person);
+
+}
diff --git a/java-des/src/com/java/design/bridge/Lady.java b/src/main/java/com/java/design/bridge/Lady.java
similarity index 93%
rename from java-des/src/com/java/design/bridge/Lady.java
rename to src/main/java/com/java/design/bridge/Lady.java
index 6c76b96..75d88d3 100644
--- a/java-des/src/com/java/design/bridge/Lady.java
+++ b/src/main/java/com/java/design/bridge/Lady.java
@@ -1,8 +1,8 @@
-package com.java.design.bridge;
-
-public class Lady extends Person {
-
- public Lady() {
- setType("Lady ...");
- }
-}
+package com.java.design.bridge;
+
+public class Lady extends Person {
+
+ public Lady() {
+ setType("Lady ...");
+ }
+}
diff --git a/java-des/src/com/java/design/bridge/Man.java b/src/main/java/com/java/design/bridge/Man.java
similarity index 93%
rename from java-des/src/com/java/design/bridge/Man.java
rename to src/main/java/com/java/design/bridge/Man.java
index 650ae0c..604ea5c 100644
--- a/java-des/src/com/java/design/bridge/Man.java
+++ b/src/main/java/com/java/design/bridge/Man.java
@@ -1,8 +1,8 @@
-package com.java.design.bridge;
-
-public class Man extends Person {
-
- public Man() {
- setType("Man ...");
- }
-}
+package com.java.design.bridge;
+
+public class Man extends Person {
+
+ public Man() {
+ setType("Man ...");
+ }
+}
diff --git a/java-des/src/com/java/design/bridge/Person.java b/src/main/java/com/java/design/bridge/Person.java
similarity index 93%
rename from java-des/src/com/java/design/bridge/Person.java
rename to src/main/java/com/java/design/bridge/Person.java
index dc3d88c..62cb5b0 100644
--- a/java-des/src/com/java/design/bridge/Person.java
+++ b/src/main/java/com/java/design/bridge/Person.java
@@ -1,25 +1,25 @@
-package com.java.design.bridge;
-
-public abstract class Person {
-
- private Clothing clothing;
-
- private String type;
-
- public Clothing getClothing() {
- return clothing;
- }
-
- public void setClothing(Clothing clothing) {
- this.clothing = clothing;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
-}
+package com.java.design.bridge;
+
+public abstract class Person {
+
+ private Clothing clothing;
+
+ private String type;
+
+ public Clothing getClothing() {
+ return clothing;
+ }
+
+ public void setClothing(Clothing clothing) {
+ this.clothing = clothing;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+}
diff --git a/java-des/src/com/java/design/bridge/WhiteShoe.java b/src/main/java/com/java/design/bridge/WhiteShoe.java
similarity index 95%
rename from java-des/src/com/java/design/bridge/WhiteShoe.java
rename to src/main/java/com/java/design/bridge/WhiteShoe.java
index d935c74..52ce83f 100644
--- a/java-des/src/com/java/design/bridge/WhiteShoe.java
+++ b/src/main/java/com/java/design/bridge/WhiteShoe.java
@@ -1,10 +1,10 @@
-package com.java.design.bridge;
-
-public class WhiteShoe extends Clothing {
-
- @Override
- public void personDressCloth(Person person) {
-
- System.out.println(person.getType() + "cloth white shoe ...");
- }
-}
+package com.java.design.bridge;
+
+public class WhiteShoe extends Clothing {
+
+ @Override
+ public void personDressCloth(Person person) {
+
+ System.out.println(person.getType() + "cloth white shoe ...");
+ }
+}
diff --git a/java-des/src/com/java/design/build/BuilderPattern.java b/src/main/java/com/java/design/build/BuilderPattern.java
similarity index 96%
rename from java-des/src/com/java/design/build/BuilderPattern.java
rename to src/main/java/com/java/design/build/BuilderPattern.java
index 03a869e..213f07a 100644
--- a/java-des/src/com/java/design/build/BuilderPattern.java
+++ b/src/main/java/com/java/design/build/BuilderPattern.java
@@ -1,20 +1,20 @@
-package com.java.design.build;
-
-/**
- * 建造者模式 -----> 是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
- *
- * 如:去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的"套餐"
- *
- * @author Administrator
- *
- */
-public class BuilderPattern {
-
- public static void main(String[] args) {
-
- PersonDirector personDirector = new PersonDirector();
- Person person = personDirector.construtorPerson(new ManBuilder());
- System.out.println(person);
- }
-
-}
+package com.java.design.build;
+
+/**
+ * 建造者模式 -----> 是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
+ *
+ * 如:去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的"套餐"
+ *
+ * @author Administrator
+ *
+ */
+public class BuilderPattern {
+
+ public static void main(String[] args) {
+
+ PersonDirector personDirector = new PersonDirector();
+ Person person = personDirector.construtorPerson(new ManBuilder());
+ System.out.println(person);
+ }
+
+}
diff --git a/java-des/src/com/java/design/build/Man.java b/src/main/java/com/java/design/build/Man.java
similarity index 93%
rename from java-des/src/com/java/design/build/Man.java
rename to src/main/java/com/java/design/build/Man.java
index d241d81..23e4acc 100644
--- a/java-des/src/com/java/design/build/Man.java
+++ b/src/main/java/com/java/design/build/Man.java
@@ -1,5 +1,5 @@
-package com.java.design.build;
-
-public class Man extends Person {
-
-}
+package com.java.design.build;
+
+public class Man extends Person {
+
+}
diff --git a/java-des/src/com/java/design/build/ManBuilder.java b/src/main/java/com/java/design/build/ManBuilder.java
similarity index 92%
rename from java-des/src/com/java/design/build/ManBuilder.java
rename to src/main/java/com/java/design/build/ManBuilder.java
index 66add0d..5917cb8 100644
--- a/java-des/src/com/java/design/build/ManBuilder.java
+++ b/src/main/java/com/java/design/build/ManBuilder.java
@@ -1,34 +1,34 @@
-package com.java.design.build;
-
-public class ManBuilder implements PersonBuilder {
-
- Person person;
-
- public ManBuilder() {
-
- person = new Man();
- }
-
- @Override
- public void buildBody() {
-
- person.setBody("建造身体...");
- }
-
- @Override
- public void buildFoot() {
-
- person.setFoot("建造脚...");
- }
-
- @Override
- public void buildHead() {
-
- person.setHead("建造头...");
- }
-
- @Override
- public Person buildPerson() {
- return person;
- }
-}
+package com.java.design.build;
+
+public class ManBuilder implements PersonBuilder {
+
+ Person person;
+
+ public ManBuilder() {
+
+ person = new Man();
+ }
+
+ @Override
+ public void buildBody() {
+
+ person.setBody("建造身体...");
+ }
+
+ @Override
+ public void buildFoot() {
+
+ person.setFoot("建造脚...");
+ }
+
+ @Override
+ public void buildHead() {
+
+ person.setHead("建造头...");
+ }
+
+ @Override
+ public Person buildPerson() {
+ return person;
+ }
+}
diff --git a/java-des/src/com/java/design/build/Person.java b/src/main/java/com/java/design/build/Person.java
similarity index 93%
rename from java-des/src/com/java/design/build/Person.java
rename to src/main/java/com/java/design/build/Person.java
index 35f8570..43752c7 100644
--- a/java-des/src/com/java/design/build/Person.java
+++ b/src/main/java/com/java/design/build/Person.java
@@ -1,38 +1,38 @@
-package com.java.design.build;
-
-public class Person {
-
- private String head;
- private String body;
- private String foot;
-
- public String getHead() {
- return head;
- }
-
- public void setHead(String head) {
- this.head = head;
- }
-
- public String getBody() {
- return body;
- }
-
- public void setBody(String body) {
- this.body = body;
- }
-
- public String getFoot() {
- return foot;
- }
-
- public void setFoot(String foot) {
- this.foot = foot;
- }
-
- @Override
- public String toString() {
- return "Person [head=" + head + ", body=" + body + ", foot=" + foot + "]";
- }
-
-}
+package com.java.design.build;
+
+public class Person {
+
+ private String head;
+ private String body;
+ private String foot;
+
+ public String getHead() {
+ return head;
+ }
+
+ public void setHead(String head) {
+ this.head = head;
+ }
+
+ public String getBody() {
+ return body;
+ }
+
+ public void setBody(String body) {
+ this.body = body;
+ }
+
+ public String getFoot() {
+ return foot;
+ }
+
+ public void setFoot(String foot) {
+ this.foot = foot;
+ }
+
+ @Override
+ public String toString() {
+ return "Person [head=" + head + ", body=" + body + ", foot=" + foot + "]";
+ }
+
+}
diff --git a/java-des/src/com/java/design/build/PersonBuilder.java b/src/main/java/com/java/design/build/PersonBuilder.java
similarity index 92%
rename from java-des/src/com/java/design/build/PersonBuilder.java
rename to src/main/java/com/java/design/build/PersonBuilder.java
index 59253d2..23e352c 100644
--- a/java-des/src/com/java/design/build/PersonBuilder.java
+++ b/src/main/java/com/java/design/build/PersonBuilder.java
@@ -1,12 +1,12 @@
-package com.java.design.build;
-
-public interface PersonBuilder {
-
- void buildHead();
-
- void buildBody();
-
- void buildFoot();
-
- Person buildPerson();
-}
+package com.java.design.build;
+
+public interface PersonBuilder {
+
+ void buildHead();
+
+ void buildBody();
+
+ void buildFoot();
+
+ Person buildPerson();
+}
diff --git a/java-des/src/com/java/design/build/PersonDirector.java b/src/main/java/com/java/design/build/PersonDirector.java
similarity index 93%
rename from java-des/src/com/java/design/build/PersonDirector.java
rename to src/main/java/com/java/design/build/PersonDirector.java
index 0e964bb..66532be 100644
--- a/java-des/src/com/java/design/build/PersonDirector.java
+++ b/src/main/java/com/java/design/build/PersonDirector.java
@@ -1,14 +1,14 @@
-package com.java.design.build;
-
-public class PersonDirector {
-
- public Person construtorPerson(PersonBuilder pb) {
-
- pb.buildHead();
- pb.buildBody();
- pb.buildFoot();
-
- return pb.buildPerson();
-
- }
-}
+package com.java.design.build;
+
+public class PersonDirector {
+
+ public Person construtorPerson(PersonBuilder pb) {
+
+ pb.buildHead();
+ pb.buildBody();
+ pb.buildFoot();
+
+ return pb.buildPerson();
+
+ }
+}
diff --git a/src/main/java/com/java/design/build/ws/Builder.java b/src/main/java/com/java/design/build/ws/Builder.java
new file mode 100644
index 0000000..1264639
--- /dev/null
+++ b/src/main/java/com/java/design/build/ws/Builder.java
@@ -0,0 +1,19 @@
+package com.java.design.build.ws;
+
+
+///抽象建造者:
+public abstract class Builder {
+
+ Product p = new Product();
+
+ abstract void creatPartA();
+
+ abstract void creatPartB();
+
+ abstract void creatPartC();
+
+ public Product getResult(){
+ return p;
+ }
+
+}
diff --git a/src/main/java/com/java/design/build/ws/ConcreteBuilder.java b/src/main/java/com/java/design/build/ws/ConcreteBuilder.java
new file mode 100644
index 0000000..3fcc749
--- /dev/null
+++ b/src/main/java/com/java/design/build/ws/ConcreteBuilder.java
@@ -0,0 +1,20 @@
+package com.java.design.build.ws;
+
+//具体建造者 继承 抽象建造者
+public class ConcreteBuilder extends Builder {
+
+ @Override
+ void creatPartA() {
+ p.setPartA("A");
+ }
+
+ @Override
+ void creatPartB() {
+ p.setPartB("B");
+ }
+
+ @Override
+ void creatPartC() {
+ p.setPartC("C");
+ }
+}
diff --git a/src/main/java/com/java/design/build/ws/Director.java b/src/main/java/com/java/design/build/ws/Director.java
new file mode 100644
index 0000000..fc33aea
--- /dev/null
+++ b/src/main/java/com/java/design/build/ws/Director.java
@@ -0,0 +1,23 @@
+package com.java.design.build.ws;
+
+import java.sql.BatchUpdateException;
+
+
+//指挥者
+public class Director {
+
+ private Builder builder;
+
+
+ public Director(Builder b){
+ this.builder = b;
+ }
+
+ public Product construct() {
+
+ builder.creatPartA();
+ builder.creatPartB();
+ builder.creatPartC();
+ return builder.getResult();
+ }
+}
diff --git a/src/main/java/com/java/design/build/ws/Main.java b/src/main/java/com/java/design/build/ws/Main.java
new file mode 100644
index 0000000..cf06e6a
--- /dev/null
+++ b/src/main/java/com/java/design/build/ws/Main.java
@@ -0,0 +1,13 @@
+package com.java.design.build.ws;
+
+public class Main {
+
+
+ public static void main(String[] args) {
+ Builder builder = new ConcreteBuilder();
+ Director director = new Director(builder);
+ Product product = director.construct();
+
+ System.out.println(product.toString());
+ }
+}
diff --git a/src/main/java/com/java/design/build/ws/Product.java b/src/main/java/com/java/design/build/ws/Product.java
new file mode 100644
index 0000000..e02a606
--- /dev/null
+++ b/src/main/java/com/java/design/build/ws/Product.java
@@ -0,0 +1,45 @@
+package com.java.design.build.ws;
+
+// 产品角色
+public class Product {
+
+ private String partA;
+
+ private String partB;
+
+ private String partC;
+
+
+ public String getPartA() {
+ return partA;
+ }
+
+ public void setPartA(String partA) {
+ this.partA = partA;
+ }
+
+ public String getPartB() {
+ return partB;
+ }
+
+ public void setPartB(String partB) {
+ this.partB = partB;
+ }
+
+ public String getPartC() {
+ return partC;
+ }
+
+ public void setPartC(String partC) {
+ this.partC = partC;
+ }
+
+ @Override
+ public String toString() {
+ return "Product{" +
+ "partA='" + partA + '\'' +
+ ", partB='" + partB + '\'' +
+ ", partC='" + partC + '\'' +
+ '}';
+ }
+}
diff --git a/java-des/src/com/java/design/command/AbstractAction.java b/src/main/java/com/java/design/command/AbstractAction.java
similarity index 93%
rename from java-des/src/com/java/design/command/AbstractAction.java
rename to src/main/java/com/java/design/command/AbstractAction.java
index eb3a89a..0c038c0 100644
--- a/java-des/src/com/java/design/command/AbstractAction.java
+++ b/src/main/java/com/java/design/command/AbstractAction.java
@@ -1,6 +1,6 @@
-package com.java.design.command;
-
-public interface AbstractAction {
-
- void excute();
-}
+package com.java.design.command;
+
+public interface AbstractAction {
+
+ void excute();
+}
diff --git a/java-des/src/com/java/design/command/AbstractReceiver.java b/src/main/java/com/java/design/command/AbstractReceiver.java
similarity index 94%
rename from java-des/src/com/java/design/command/AbstractReceiver.java
rename to src/main/java/com/java/design/command/AbstractReceiver.java
index b4c30ef..2ba7025 100644
--- a/java-des/src/com/java/design/command/AbstractReceiver.java
+++ b/src/main/java/com/java/design/command/AbstractReceiver.java
@@ -1,6 +1,6 @@
-package com.java.design.command;
-
-public abstract class AbstractReceiver {
-
- abstract void cook();
-}
+package com.java.design.command;
+
+public abstract class AbstractReceiver {
+
+ abstract void cook();
+}
diff --git a/java-des/src/com/java/design/command/ActionA.java b/src/main/java/com/java/design/command/ActionA.java
similarity index 95%
rename from java-des/src/com/java/design/command/ActionA.java
rename to src/main/java/com/java/design/command/ActionA.java
index 6a93e30..e11d513 100644
--- a/java-des/src/com/java/design/command/ActionA.java
+++ b/src/main/java/com/java/design/command/ActionA.java
@@ -1,18 +1,18 @@
-package com.java.design.command;
-
-public class ActionA implements AbstractAction {
-
- private AbstractReceiver abstractReceiver;
-
- public ActionA(AbstractReceiver abstractReceiver) {
-
- this.abstractReceiver = abstractReceiver;
- }
-
- @Override
- public void excute() {
-
- System.out.println("命令A发布 ...");
- this.abstractReceiver.cook();
- }
-}
+package com.java.design.command;
+
+public class ActionA implements AbstractAction {
+
+ private AbstractReceiver abstractReceiver;
+
+ public ActionA(AbstractReceiver abstractReceiver) {
+
+ this.abstractReceiver = abstractReceiver;
+ }
+
+ @Override
+ public void excute() {
+
+ System.out.println("命令A发布 ...");
+ this.abstractReceiver.cook();
+ }
+}
diff --git a/java-des/src/com/java/design/command/ActionB.java b/src/main/java/com/java/design/command/ActionB.java
similarity index 95%
rename from java-des/src/com/java/design/command/ActionB.java
rename to src/main/java/com/java/design/command/ActionB.java
index 0d7376b..3756ed6 100644
--- a/java-des/src/com/java/design/command/ActionB.java
+++ b/src/main/java/com/java/design/command/ActionB.java
@@ -1,18 +1,18 @@
-package com.java.design.command;
-
-public class ActionB implements AbstractAction {
-
- private AbstractReceiver abstractReceiver;
-
- public ActionB(AbstractReceiver abstractReceiver) {
-
- this.abstractReceiver = abstractReceiver;
- }
-
- @Override
- public void excute() {
-
- System.out.println("命令B发布 ...");
- this.abstractReceiver.cook();
- }
-}
+package com.java.design.command;
+
+public class ActionB implements AbstractAction {
+
+ private AbstractReceiver abstractReceiver;
+
+ public ActionB(AbstractReceiver abstractReceiver) {
+
+ this.abstractReceiver = abstractReceiver;
+ }
+
+ @Override
+ public void excute() {
+
+ System.out.println("命令B发布 ...");
+ this.abstractReceiver.cook();
+ }
+}
diff --git a/java-des/src/com/java/design/command/CommandPattern.java b/src/main/java/com/java/design/command/CommandPattern.java
similarity index 96%
rename from java-des/src/com/java/design/command/CommandPattern.java
rename to src/main/java/com/java/design/command/CommandPattern.java
index 3ada726..e1db666 100644
--- a/java-des/src/com/java/design/command/CommandPattern.java
+++ b/src/main/java/com/java/design/command/CommandPattern.java
@@ -1,32 +1,32 @@
-package com.java.design.command;
-
-/**
- * 命令模式 ----->
- * 显而易见,是将命令和实际操作相隔离,解耦合,客户端只发出命令,具体的操作不需要关心,只需要完成任务。举个很简单的例子,用户点菜,然后厨师做菜,
- * 根据点菜的口味不同厨师做不同的菜
- *
- * @author Administrator
- *
- */
-public class CommandPattern {
-
- public static void main(String[] args) {
-
- // 创建调用者
- Invoker invoker = new Invoker();
-
- // 创建命令接收者
- AbstractReceiver abstractReceiver = new ReceiverA();
-
- // 创建命令,传入接收者
- AbstractAction abstractAction = new ActionA(abstractReceiver);
- // AbstractAction abstractAction = new ActionB(abstractReceiver);
-
- // 发布命令
- invoker.setAbstractAction(abstractAction);
-
- // 执行命令
- invoker.action();
- }
-
-}
+package com.java.design.command;
+
+/**
+ * 命令模式 ----->
+ * 显而易见,是将命令和实际操作相隔离,解耦合,客户端只发出命令,具体的操作不需要关心,只需要完成任务。举个很简单的例子,用户点菜,然后厨师做菜,
+ * 根据点菜的口味不同厨师做不同的菜
+ *
+ * @author Administrator
+ *
+ */
+public class CommandPattern {
+
+ public static void main(String[] args) {
+
+ // 创建调用者
+ Invoker invoker = new Invoker();
+
+ // 创建命令接收者
+ AbstractReceiver abstractReceiver = new ReceiverA();
+
+ // 创建命令,传入接收者
+ AbstractAction abstractAction = new ActionA(abstractReceiver);
+ // AbstractAction abstractAction = new ActionB(abstractReceiver);
+
+ // 发布命令
+ invoker.setAbstractAction(abstractAction);
+
+ // 执行命令
+ invoker.action();
+ }
+
+}
diff --git a/java-des/src/com/java/design/command/Invoker.java b/src/main/java/com/java/design/command/Invoker.java
similarity index 94%
rename from java-des/src/com/java/design/command/Invoker.java
rename to src/main/java/com/java/design/command/Invoker.java
index be41ebf..f808d9a 100644
--- a/java-des/src/com/java/design/command/Invoker.java
+++ b/src/main/java/com/java/design/command/Invoker.java
@@ -1,16 +1,16 @@
-package com.java.design.command;
-
-public class Invoker {
-
- private AbstractAction abstractAction;
-
- public void setAbstractAction(AbstractAction abstractAction) {
- this.abstractAction = abstractAction;
- }
-
- public void action() {
-
- this.abstractAction.excute();
- }
-
-}
+package com.java.design.command;
+
+public class Invoker {
+
+ private AbstractAction abstractAction;
+
+ public void setAbstractAction(AbstractAction abstractAction) {
+ this.abstractAction = abstractAction;
+ }
+
+ public void action() {
+
+ this.abstractAction.excute();
+ }
+
+}
diff --git a/java-des/src/com/java/design/command/ReceiverA.java b/src/main/java/com/java/design/command/ReceiverA.java
similarity index 94%
rename from java-des/src/com/java/design/command/ReceiverA.java
rename to src/main/java/com/java/design/command/ReceiverA.java
index 72b2dc0..048d12c 100644
--- a/java-des/src/com/java/design/command/ReceiverA.java
+++ b/src/main/java/com/java/design/command/ReceiverA.java
@@ -1,11 +1,11 @@
-package com.java.design.command;
-
-public class ReceiverA extends AbstractReceiver {
-
- @Override
- void cook() {
-
- System.out.println("成功接收到命令A 并执行完毕 ...");
- }
-
-}
+package com.java.design.command;
+
+public class ReceiverA extends AbstractReceiver {
+
+ @Override
+ void cook() {
+
+ System.out.println("成功接收到命令A 并执行完毕 ...");
+ }
+
+}
diff --git a/java-des/src/com/java/design/command/ReceiverB.java b/src/main/java/com/java/design/command/ReceiverB.java
similarity index 94%
rename from java-des/src/com/java/design/command/ReceiverB.java
rename to src/main/java/com/java/design/command/ReceiverB.java
index 8b1b448..c5c4d47 100644
--- a/java-des/src/com/java/design/command/ReceiverB.java
+++ b/src/main/java/com/java/design/command/ReceiverB.java
@@ -1,10 +1,10 @@
-package com.java.design.command;
-
-public class ReceiverB extends AbstractReceiver {
-
- @Override
- void cook() {
-
- System.out.println("成功接收到命令B 并执行完毕 ...");
- }
-}
+package com.java.design.command;
+
+public class ReceiverB extends AbstractReceiver {
+
+ @Override
+ void cook() {
+
+ System.out.println("成功接收到命令B 并执行完毕 ...");
+ }
+}
diff --git a/java-des/src/com/java/design/composite/Component.java b/src/main/java/com/java/design/composite/Component.java
similarity index 94%
rename from java-des/src/com/java/design/composite/Component.java
rename to src/main/java/com/java/design/composite/Component.java
index 170a1a5..67b4727 100644
--- a/java-des/src/com/java/design/composite/Component.java
+++ b/src/main/java/com/java/design/composite/Component.java
@@ -1,16 +1,16 @@
-package com.java.design.composite;
-
-public abstract class Component {
-
- protected String name;
-
- public Component(String name) {
- this.name = name;
- }
-
- public abstract void add(Component component);
-
- public abstract void delete(Component component);
-
- public abstract void show(int index);
-}
+package com.java.design.composite;
+
+public abstract class Component {
+
+ protected String name;
+
+ public Component(String name) {
+ this.name = name;
+ }
+
+ public abstract void add(Component component);
+
+ public abstract void delete(Component component);
+
+ public abstract void show(int index);
+}
diff --git a/java-des/src/com/java/design/composite/Composite.java b/src/main/java/com/java/design/composite/Composite.java
similarity index 95%
rename from java-des/src/com/java/design/composite/Composite.java
rename to src/main/java/com/java/design/composite/Composite.java
index 23a9f1a..16cac14 100644
--- a/java-des/src/com/java/design/composite/Composite.java
+++ b/src/main/java/com/java/design/composite/Composite.java
@@ -1,37 +1,37 @@
-package com.java.design.composite;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Composite extends Component {
-
- List components = new ArrayList();
-
- public Composite(String name) {
- super(name);
- }
-
- @Override
- public void add(Component component) {
-
- components.add(component);
- }
-
- @Override
- public void show(int index) {
-
- StringBuilder stringBuilder = new StringBuilder();
- for (int i = 0; i < index; i++) {
- stringBuilder.append("-");
- }
- System.out.println(stringBuilder.toString() + this.name);
- for (Component component : components) {
- component.show(index + 2);
- }
- }
-
- @Override
- public void delete(Component component) {
- components.remove(component);
- }
-}
+package com.java.design.composite;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Composite extends Component {
+
+ List components = new ArrayList();
+
+ public Composite(String name) {
+ super(name);
+ }
+
+ @Override
+ public void add(Component component) {
+
+ components.add(component);
+ }
+
+ @Override
+ public void show(int index) {
+
+ StringBuilder stringBuilder = new StringBuilder();
+ for (int i = 0; i < index; i++) {
+ stringBuilder.append("-");
+ }
+ System.out.println(stringBuilder.toString() + this.name);
+ for (Component component : components) {
+ component.show(index + 2);
+ }
+ }
+
+ @Override
+ public void delete(Component component) {
+ components.remove(component);
+ }
+}
diff --git a/java-des/src/com/java/design/composite/CompositePattern.java b/src/main/java/com/java/design/composite/CompositePattern.java
similarity index 96%
rename from java-des/src/com/java/design/composite/CompositePattern.java
rename to src/main/java/com/java/design/composite/CompositePattern.java
index 92ae830..b13ebde 100644
--- a/java-des/src/com/java/design/composite/CompositePattern.java
+++ b/src/main/java/com/java/design/composite/CompositePattern.java
@@ -1,31 +1,31 @@
-package com.java.design.composite;
-
-/**
- * 组合模式(Composite
- * Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次
- * 。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。
- *
- * @author Administrator
- *
- */
-public class CompositePattern {
-
- public static void main(String[] args) {
-
- Composite composite = new Composite("root");
- composite.add(new Leaf("leaf1"));
- composite.add(new Leaf("leaf2"));
-
- Composite composite1 = new Composite("composite1");
- composite1.add(new Leaf("leaf3"));
- composite1.add(new Leaf("leaf4"));
- composite1.add(new Leaf("leaf5"));
- composite.add(composite1);
-
- Leaf leaf6 = new Leaf("leaf6");
- composite.add(leaf6);
- // composite.delete(leaf6);
- composite.show(1);
- }
-
-}
+package com.java.design.composite;
+
+/**
+ * 组合模式(Composite
+ * Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次
+ * 。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。
+ *
+ * @author Administrator
+ *
+ */
+public class CompositePattern {
+
+ public static void main(String[] args) {
+
+ Composite composite = new Composite("root");
+ composite.add(new Leaf("leaf1"));
+ composite.add(new Leaf("leaf2"));
+
+ Composite composite1 = new Composite("composite1");
+ composite1.add(new Leaf("leaf3"));
+ composite1.add(new Leaf("leaf4"));
+ composite1.add(new Leaf("leaf5"));
+ composite.add(composite1);
+
+ Leaf leaf6 = new Leaf("leaf6");
+ composite.add(leaf6);
+ // composite.delete(leaf6);
+ composite.show(1);
+ }
+
+}
diff --git a/java-des/src/com/java/design/composite/Leaf.java b/src/main/java/com/java/design/composite/Leaf.java
similarity index 95%
rename from java-des/src/com/java/design/composite/Leaf.java
rename to src/main/java/com/java/design/composite/Leaf.java
index 7572a9c..d114a29 100644
--- a/java-des/src/com/java/design/composite/Leaf.java
+++ b/src/main/java/com/java/design/composite/Leaf.java
@@ -1,30 +1,30 @@
-package com.java.design.composite;
-
-public class Leaf extends Component {
-
- public Leaf(String name) {
- super(name);
- }
-
- @Override
- public void add(Component component) {
-
- System.out.println("A leaf could not add component");
- }
-
- @Override
- public void delete(Component component) {
-
- System.out.println("A leaf could not delete component");
- }
-
- @Override
- public void show(int index) {
-
- StringBuilder stringBuilder = new StringBuilder();
- for (int i = 0; i < index; i++) {
- stringBuilder.append("-");
- }
- System.out.println(stringBuilder.toString() + this.name);
- }
-}
+package com.java.design.composite;
+
+public class Leaf extends Component {
+
+ public Leaf(String name) {
+ super(name);
+ }
+
+ @Override
+ public void add(Component component) {
+
+ System.out.println("A leaf could not add component");
+ }
+
+ @Override
+ public void delete(Component component) {
+
+ System.out.println("A leaf could not delete component");
+ }
+
+ @Override
+ public void show(int index) {
+
+ StringBuilder stringBuilder = new StringBuilder();
+ for (int i = 0; i < index; i++) {
+ stringBuilder.append("-");
+ }
+ System.out.println(stringBuilder.toString() + this.name);
+ }
+}
diff --git a/java-des/src/com/java/design/decorator/Decorator.java b/src/main/java/com/java/design/decorator/Decorator.java
similarity index 94%
rename from java-des/src/com/java/design/decorator/Decorator.java
rename to src/main/java/com/java/design/decorator/Decorator.java
index 3e64bb6..dff17a8 100644
--- a/java-des/src/com/java/design/decorator/Decorator.java
+++ b/src/main/java/com/java/design/decorator/Decorator.java
@@ -1,15 +1,15 @@
-package com.java.design.decorator;
-
-public abstract class Decorator implements Person {
-
- protected Person person;
-
- public void setPerson(Person person) {
- this.person = person;
- }
-
- @Override
- public void eat() {
- person.eat();
- }
-}
+package com.java.design.decorator;
+
+public abstract class Decorator implements Person {
+
+ protected Person person;
+
+ public void setPerson(Person person) {
+ this.person = person;
+ }
+
+ @Override
+ public void eat() {
+ person.eat();
+ }
+}
diff --git a/java-des/src/com/java/design/decorator/DecoratorPattern.java b/src/main/java/com/java/design/decorator/DecoratorPattern.java
similarity index 97%
rename from java-des/src/com/java/design/decorator/DecoratorPattern.java
rename to src/main/java/com/java/design/decorator/DecoratorPattern.java
index e58e081..b0425fd 100644
--- a/java-des/src/com/java/design/decorator/DecoratorPattern.java
+++ b/src/main/java/com/java/design/decorator/DecoratorPattern.java
@@ -1,25 +1,25 @@
-package com.java.design.decorator;
-
-/**
- * 装饰模式 -----> 对新房进行装修并没有改变房屋的本质,但它可以让房子变得更漂亮、更温馨、更实用。
- * 在软件设计中,对已有对象(新房)的功能进行扩展(装修)。 把通用功能封装在装饰器中,用到的地方进行调用。
- * 装饰模式是一种用于替代继承的技术,使用对象之间的关联关系取代类之间的继承关系。引入装饰类,扩充新功能。
- *
- * @author Administrator
- *
- */
-public class DecoratorPattern {
-
- public static void main(String[] args) {
-
- Man man = new Man();
- ManDecoratorA decoratorA = new ManDecoratorA();
- ManDecoratorB decoratorB = new ManDecoratorB();
-
- decoratorA.setPerson(man);
- // decoratorB.setPerson(decoratorA);
- decoratorA.eat();
-
- }
-
-}
+package com.java.design.decorator;
+
+/**
+ * 装饰模式 -----> 对新房进行装修并没有改变房屋的本质,但它可以让房子变得更漂亮、更温馨、更实用。
+ * 在软件设计中,对已有对象(新房)的功能进行扩展(装修)。 把通用功能封装在装饰器中,用到的地方进行调用。
+ * 装饰模式是一种用于替代继承的技术,使用对象之间的关联关系取代类之间的继承关系。引入装饰类,扩充新功能。
+ *
+ * @author Administrator
+ *
+ */
+public class DecoratorPattern {
+
+ public static void main(String[] args) {
+
+ Man man = new Man();
+ ManDecoratorA decoratorA = new ManDecoratorA();
+ ManDecoratorB decoratorB = new ManDecoratorB();
+
+ decoratorA.setPerson(man);
+ // decoratorB.setPerson(decoratorA);
+ decoratorA.eat();
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/decorator/Man.java b/src/main/java/com/java/design/decorator/Man.java
similarity index 93%
rename from java-des/src/com/java/design/decorator/Man.java
rename to src/main/java/com/java/design/decorator/Man.java
index 0444ef6..c3835fb 100644
--- a/java-des/src/com/java/design/decorator/Man.java
+++ b/src/main/java/com/java/design/decorator/Man.java
@@ -1,10 +1,10 @@
-package com.java.design.decorator;
-
-public class Man implements Person {
-
- @Override
- public void eat() {
-
- System.out.println("Man eating ...");
- }
-}
+package com.java.design.decorator;
+
+public class Man implements Person {
+
+ @Override
+ public void eat() {
+
+ System.out.println("Man eating ...");
+ }
+}
diff --git a/java-des/src/com/java/design/decorator/ManDecoratorA.java b/src/main/java/com/java/design/decorator/ManDecoratorA.java
similarity index 94%
rename from java-des/src/com/java/design/decorator/ManDecoratorA.java
rename to src/main/java/com/java/design/decorator/ManDecoratorA.java
index 4aa914b..8f77b6e 100644
--- a/java-des/src/com/java/design/decorator/ManDecoratorA.java
+++ b/src/main/java/com/java/design/decorator/ManDecoratorA.java
@@ -1,15 +1,15 @@
-package com.java.design.decorator;
-
-public class ManDecoratorA extends Decorator {
-
- @Override
- public void eat() {
- super.eat();
- reEat();
- System.out.println("Decorator A ...");
- }
-
- public void reEat() {
- System.out.println("Eat again ...");
- }
-}
+package com.java.design.decorator;
+
+public class ManDecoratorA extends Decorator {
+
+ @Override
+ public void eat() {
+ super.eat();
+ reEat();
+ System.out.println("Decorator A ...");
+ }
+
+ public void reEat() {
+ System.out.println("Eat again ...");
+ }
+}
diff --git a/java-des/src/com/java/design/decorator/ManDecoratorB.java b/src/main/java/com/java/design/decorator/ManDecoratorB.java
similarity index 94%
rename from java-des/src/com/java/design/decorator/ManDecoratorB.java
rename to src/main/java/com/java/design/decorator/ManDecoratorB.java
index c09f7ea..9542638 100644
--- a/java-des/src/com/java/design/decorator/ManDecoratorB.java
+++ b/src/main/java/com/java/design/decorator/ManDecoratorB.java
@@ -1,11 +1,11 @@
-package com.java.design.decorator;
-
-public class ManDecoratorB extends Decorator {
-
- @Override
- public void eat() {
- super.eat();
-
- System.out.println("Man DecoratorB ...");
- }
-}
+package com.java.design.decorator;
+
+public class ManDecoratorB extends Decorator {
+
+ @Override
+ public void eat() {
+ super.eat();
+
+ System.out.println("Man DecoratorB ...");
+ }
+}
diff --git a/java-des/src/com/java/design/decorator/Person.java b/src/main/java/com/java/design/decorator/Person.java
similarity index 91%
rename from java-des/src/com/java/design/decorator/Person.java
rename to src/main/java/com/java/design/decorator/Person.java
index 6679e32..c445dc3 100644
--- a/java-des/src/com/java/design/decorator/Person.java
+++ b/src/main/java/com/java/design/decorator/Person.java
@@ -1,7 +1,7 @@
-package com.java.design.decorator;
-
-public interface Person {
-
- void eat();
-
-}
+package com.java.design.decorator;
+
+public interface Person {
+
+ void eat();
+
+}
diff --git a/java-des/src/com/java/design/facade/Facade.java b/src/main/java/com/java/design/facade/Facade.java
similarity index 93%
rename from java-des/src/com/java/design/facade/Facade.java
rename to src/main/java/com/java/design/facade/Facade.java
index a11ff86..94c8b67 100644
--- a/java-des/src/com/java/design/facade/Facade.java
+++ b/src/main/java/com/java/design/facade/Facade.java
@@ -1,36 +1,36 @@
-package com.java.design.facade;
-
-public class Facade {
-
- ServiceA serviceA;
-
- ServiceB serviceB;
-
- ServiceC serviceC;
-
- public Facade() {
-
- serviceA = new ServiceAImpl();
- serviceB = new ServiceBImpl();
- serviceC = new ServiceCImpl();
- }
-
- public void methodA() {
- // 重组
- serviceA.methodA();
- serviceB.methodB();
- }
-
- public void methodB() {
- // 重组
- serviceB.methodB();
- serviceC.methodC();
- }
-
- public void methodC() {
- // 重组
- serviceC.methodC();
- serviceA.methodA();
- }
-
-}
+package com.java.design.facade;
+
+public class Facade {
+
+ ServiceA serviceA;
+
+ ServiceB serviceB;
+
+ ServiceC serviceC;
+
+ public Facade() {
+
+ serviceA = new ServiceAImpl();
+ serviceB = new ServiceBImpl();
+ serviceC = new ServiceCImpl();
+ }
+
+ public void methodA() {
+ // 重组
+ serviceA.methodA();
+ serviceB.methodB();
+ }
+
+ public void methodB() {
+ // 重组
+ serviceB.methodB();
+ serviceC.methodC();
+ }
+
+ public void methodC() {
+ // 重组
+ serviceC.methodC();
+ serviceA.methodA();
+ }
+
+}
diff --git a/java-des/src/com/java/design/facade/FacadePattern.java b/src/main/java/com/java/design/facade/FacadePattern.java
similarity index 96%
rename from java-des/src/com/java/design/facade/FacadePattern.java
rename to src/main/java/com/java/design/facade/FacadePattern.java
index b5fe1d2..abebf2f 100644
--- a/java-des/src/com/java/design/facade/FacadePattern.java
+++ b/src/main/java/com/java/design/facade/FacadePattern.java
@@ -1,32 +1,32 @@
-package com.java.design.facade;
-
-/**
- * 外观模式 ----> 是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,
- * 降低子系统与客户端的耦合度,且客户端调用非常方便。
- *
- * @author Administrator
- *
- */
-public class FacadePattern {
-
- public static void main(String[] args) {
-
- // 不根据外观调用
- ServiceA serviceA = new ServiceAImpl();
- ServiceB serviceB = new ServiceBImpl();
- ServiceC serviceC = new ServiceCImpl();
-
- serviceA.methodA();
- serviceB.methodB();
- serviceC.methodC();
-
- System.out.println("----------------");
-
- // 利用外观调用
- Facade facade = new Facade();
- facade.methodA();
- facade.methodB();
- facade.methodC();
- }
-
-}
+package com.java.design.facade;
+
+/**
+ * 外观模式 ----> 是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,
+ * 降低子系统与客户端的耦合度,且客户端调用非常方便。
+ *
+ * @author Administrator
+ *
+ */
+public class FacadePattern {
+
+ public static void main(String[] args) {
+
+ // 不根据外观调用
+ ServiceA serviceA = new ServiceAImpl();
+ ServiceB serviceB = new ServiceBImpl();
+ ServiceC serviceC = new ServiceCImpl();
+
+ serviceA.methodA();
+ serviceB.methodB();
+ serviceC.methodC();
+
+ System.out.println("----------------");
+
+ // 利用外观调用
+ Facade facade = new Facade();
+ facade.methodA();
+ facade.methodB();
+ facade.methodC();
+ }
+
+}
diff --git a/java-des/src/com/java/design/facade/ServiceA.java b/src/main/java/com/java/design/facade/ServiceA.java
similarity index 92%
rename from java-des/src/com/java/design/facade/ServiceA.java
rename to src/main/java/com/java/design/facade/ServiceA.java
index f6ee2c8..0cb9d9c 100644
--- a/java-des/src/com/java/design/facade/ServiceA.java
+++ b/src/main/java/com/java/design/facade/ServiceA.java
@@ -1,7 +1,7 @@
-package com.java.design.facade;
-
-public interface ServiceA {
-
- void methodA();
-
-}
+package com.java.design.facade;
+
+public interface ServiceA {
+
+ void methodA();
+
+}
diff --git a/java-des/src/com/java/design/facade/ServiceAImpl.java b/src/main/java/com/java/design/facade/ServiceAImpl.java
similarity index 94%
rename from java-des/src/com/java/design/facade/ServiceAImpl.java
rename to src/main/java/com/java/design/facade/ServiceAImpl.java
index 7f59d11..93daf19 100644
--- a/java-des/src/com/java/design/facade/ServiceAImpl.java
+++ b/src/main/java/com/java/design/facade/ServiceAImpl.java
@@ -1,10 +1,10 @@
-package com.java.design.facade;
-
-public class ServiceAImpl implements ServiceA {
-
- @Override
- public void methodA() {
-
- System.out.println("This is Method A ...");
- }
-}
+package com.java.design.facade;
+
+public class ServiceAImpl implements ServiceA {
+
+ @Override
+ public void methodA() {
+
+ System.out.println("This is Method A ...");
+ }
+}
diff --git a/java-des/src/com/java/design/facade/ServiceB.java b/src/main/java/com/java/design/facade/ServiceB.java
similarity index 93%
rename from java-des/src/com/java/design/facade/ServiceB.java
rename to src/main/java/com/java/design/facade/ServiceB.java
index 73097cb..21a9927 100644
--- a/java-des/src/com/java/design/facade/ServiceB.java
+++ b/src/main/java/com/java/design/facade/ServiceB.java
@@ -1,6 +1,6 @@
-package com.java.design.facade;
-
-public interface ServiceB {
-
- void methodB();
-}
+package com.java.design.facade;
+
+public interface ServiceB {
+
+ void methodB();
+}
diff --git a/java-des/src/com/java/design/facade/ServiceBImpl.java b/src/main/java/com/java/design/facade/ServiceBImpl.java
similarity index 94%
rename from java-des/src/com/java/design/facade/ServiceBImpl.java
rename to src/main/java/com/java/design/facade/ServiceBImpl.java
index c878a67..b816fb8 100644
--- a/java-des/src/com/java/design/facade/ServiceBImpl.java
+++ b/src/main/java/com/java/design/facade/ServiceBImpl.java
@@ -1,10 +1,10 @@
-package com.java.design.facade;
-
-public class ServiceBImpl implements ServiceB {
-
- @Override
- public void methodB() {
-
- System.out.println("This is Method B ...");
- }
-}
+package com.java.design.facade;
+
+public class ServiceBImpl implements ServiceB {
+
+ @Override
+ public void methodB() {
+
+ System.out.println("This is Method B ...");
+ }
+}
diff --git a/java-des/src/com/java/design/facade/ServiceC.java b/src/main/java/com/java/design/facade/ServiceC.java
similarity index 93%
rename from java-des/src/com/java/design/facade/ServiceC.java
rename to src/main/java/com/java/design/facade/ServiceC.java
index b823a5c..ae4fa9c 100644
--- a/java-des/src/com/java/design/facade/ServiceC.java
+++ b/src/main/java/com/java/design/facade/ServiceC.java
@@ -1,6 +1,6 @@
-package com.java.design.facade;
-
-public interface ServiceC {
-
- void methodC();
-}
+package com.java.design.facade;
+
+public interface ServiceC {
+
+ void methodC();
+}
diff --git a/java-des/src/com/java/design/facade/ServiceCImpl.java b/src/main/java/com/java/design/facade/ServiceCImpl.java
similarity index 94%
rename from java-des/src/com/java/design/facade/ServiceCImpl.java
rename to src/main/java/com/java/design/facade/ServiceCImpl.java
index 0d8a4a3..d2e429e 100644
--- a/java-des/src/com/java/design/facade/ServiceCImpl.java
+++ b/src/main/java/com/java/design/facade/ServiceCImpl.java
@@ -1,10 +1,10 @@
-package com.java.design.facade;
-
-public class ServiceCImpl implements ServiceC {
-
- @Override
- public void methodC() {
-
- System.out.println("This is Method C ...");
- }
-}
+package com.java.design.facade;
+
+public class ServiceCImpl implements ServiceC {
+
+ @Override
+ public void methodC() {
+
+ System.out.println("This is Method C ...");
+ }
+}
diff --git a/java-des/src/com/java/design/factorymethod/FactoryMethodPattern.java b/src/main/java/com/java/design/factorymethod/FactoryMethodPattern.java
similarity index 95%
rename from java-des/src/com/java/design/factorymethod/FactoryMethodPattern.java
rename to src/main/java/com/java/design/factorymethod/FactoryMethodPattern.java
index 0cbce8b..7fd1d09 100644
--- a/java-des/src/com/java/design/factorymethod/FactoryMethodPattern.java
+++ b/src/main/java/com/java/design/factorymethod/FactoryMethodPattern.java
@@ -1,20 +1,20 @@
-package com.java.design.factorymethod;
-
-/**
- * 工厂方法 ------> 具体的工厂对象负责生产具体的产品对象
- *
- * @author Administrator
- *
- */
-public class FactoryMethodPattern {
-
- public static void main(String[] args) {
-
- StudentWorkFactory studentWorkFactory = new StudentWorkFactory();
- studentWorkFactory.getWork().doWork();
-
- TeacherWorkFactory teacherWorkFactory = new TeacherWorkFactory();
- teacherWorkFactory.getWork().doWork();
- }
-
-}
+package com.java.design.factorymethod;
+
+/**
+ * 工厂方法 ------> 具体的工厂对象负责生产具体的产品对象
+ *
+ * @author Administrator
+ *
+ */
+public class FactoryMethodPattern {
+
+ public static void main(String[] args) {
+
+ StudentWorkFactory studentWorkFactory = new StudentWorkFactory();
+ studentWorkFactory.getWork().doWork();
+
+ TeacherWorkFactory teacherWorkFactory = new TeacherWorkFactory();
+ teacherWorkFactory.getWork().doWork();
+ }
+
+}
diff --git a/java-des/src/com/java/design/factorymethod/IWorkFactory.java b/src/main/java/com/java/design/factorymethod/IWorkFactory.java
similarity index 93%
rename from java-des/src/com/java/design/factorymethod/IWorkFactory.java
rename to src/main/java/com/java/design/factorymethod/IWorkFactory.java
index a8326d7..1b6048a 100644
--- a/java-des/src/com/java/design/factorymethod/IWorkFactory.java
+++ b/src/main/java/com/java/design/factorymethod/IWorkFactory.java
@@ -1,7 +1,7 @@
-package com.java.design.factorymethod;
-
-public interface IWorkFactory {
-
- Work getWork();
-
-}
+package com.java.design.factorymethod;
+
+public interface IWorkFactory {
+
+ Work getWork();
+
+}
diff --git a/java-des/src/com/java/design/factorymethod/StudentWork.java b/src/main/java/com/java/design/factorymethod/StudentWork.java
similarity index 94%
rename from java-des/src/com/java/design/factorymethod/StudentWork.java
rename to src/main/java/com/java/design/factorymethod/StudentWork.java
index 64dc51d..5b398a6 100644
--- a/java-des/src/com/java/design/factorymethod/StudentWork.java
+++ b/src/main/java/com/java/design/factorymethod/StudentWork.java
@@ -1,11 +1,11 @@
-package com.java.design.factorymethod;
-
-public class StudentWork implements Work {
-
- @Override
- public void doWork() {
- System.out.println("学生在做作业!");
-
- }
-
-}
+package com.java.design.factorymethod;
+
+public class StudentWork implements Work {
+
+ @Override
+ public void doWork() {
+ System.out.println("学生在做作业!");
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/factorymethod/StudentWorkFactory.java b/src/main/java/com/java/design/factorymethod/StudentWorkFactory.java
similarity index 94%
rename from java-des/src/com/java/design/factorymethod/StudentWorkFactory.java
rename to src/main/java/com/java/design/factorymethod/StudentWorkFactory.java
index 48efd6d..ea0e360 100644
--- a/java-des/src/com/java/design/factorymethod/StudentWorkFactory.java
+++ b/src/main/java/com/java/design/factorymethod/StudentWorkFactory.java
@@ -1,9 +1,9 @@
-package com.java.design.factorymethod;
-
-public class StudentWorkFactory implements IWorkFactory {
-
- @Override
- public Work getWork() {
- return new StudentWork();
- }
-}
+package com.java.design.factorymethod;
+
+public class StudentWorkFactory implements IWorkFactory {
+
+ @Override
+ public Work getWork() {
+ return new StudentWork();
+ }
+}
diff --git a/java-des/src/com/java/design/factorymethod/TeacherWork.java b/src/main/java/com/java/design/factorymethod/TeacherWork.java
similarity index 94%
rename from java-des/src/com/java/design/factorymethod/TeacherWork.java
rename to src/main/java/com/java/design/factorymethod/TeacherWork.java
index 5036166..37a4dfe 100644
--- a/java-des/src/com/java/design/factorymethod/TeacherWork.java
+++ b/src/main/java/com/java/design/factorymethod/TeacherWork.java
@@ -1,10 +1,10 @@
-package com.java.design.factorymethod;
-
-public class TeacherWork implements Work {
-
- @Override
- public void doWork() {
- System.out.println("老师在批改作业!");
- }
-
-}
+package com.java.design.factorymethod;
+
+public class TeacherWork implements Work {
+
+ @Override
+ public void doWork() {
+ System.out.println("老师在批改作业!");
+ }
+
+}
diff --git a/java-des/src/com/java/design/factorymethod/TeacherWorkFactory.java b/src/main/java/com/java/design/factorymethod/TeacherWorkFactory.java
similarity index 94%
rename from java-des/src/com/java/design/factorymethod/TeacherWorkFactory.java
rename to src/main/java/com/java/design/factorymethod/TeacherWorkFactory.java
index c186b9d..401a3c3 100644
--- a/java-des/src/com/java/design/factorymethod/TeacherWorkFactory.java
+++ b/src/main/java/com/java/design/factorymethod/TeacherWorkFactory.java
@@ -1,9 +1,9 @@
-package com.java.design.factorymethod;
-
-public class TeacherWorkFactory implements IWorkFactory {
-
- @Override
- public Work getWork() {
- return new TeacherWork();
- }
-}
+package com.java.design.factorymethod;
+
+public class TeacherWorkFactory implements IWorkFactory {
+
+ @Override
+ public Work getWork() {
+ return new TeacherWork();
+ }
+}
diff --git a/java-des/src/com/java/design/factorymethod/Work.java b/src/main/java/com/java/design/factorymethod/Work.java
similarity index 92%
rename from java-des/src/com/java/design/factorymethod/Work.java
rename to src/main/java/com/java/design/factorymethod/Work.java
index bba0dd2..3bb6c86 100644
--- a/java-des/src/com/java/design/factorymethod/Work.java
+++ b/src/main/java/com/java/design/factorymethod/Work.java
@@ -1,7 +1,7 @@
-package com.java.design.factorymethod;
-
-public interface Work {
-
- void doWork();
-
-}
+package com.java.design.factorymethod;
+
+public interface Work {
+
+ void doWork();
+
+}
diff --git a/src/main/java/com/java/design/factorymethod/ws/BCCar.java b/src/main/java/com/java/design/factorymethod/ws/BCCar.java
new file mode 100644
index 0000000..de9c8df
--- /dev/null
+++ b/src/main/java/com/java/design/factorymethod/ws/BCCar.java
@@ -0,0 +1,8 @@
+package com.java.design.factorymethod.ws;
+
+public class BCCar implements ICar {
+ @Override
+ public void run() {
+ System.out.println("BC run ...");
+ }
+}
diff --git a/src/main/java/com/java/design/factorymethod/ws/BCCarFactory.java b/src/main/java/com/java/design/factorymethod/ws/BCCarFactory.java
new file mode 100644
index 0000000..b92c8e6
--- /dev/null
+++ b/src/main/java/com/java/design/factorymethod/ws/BCCarFactory.java
@@ -0,0 +1,12 @@
+package com.java.design.factorymethod.ws;
+
+import java.sql.SQLOutput;
+
+public class BCCarFactory implements ICarFactory {
+
+ @Override
+ public ICar create() {
+ System.out.println("BCCarFactory create BCCar ...");
+ return new BCCar();
+ }
+}
diff --git a/src/main/java/com/java/design/factorymethod/ws/BMCar.java b/src/main/java/com/java/design/factorymethod/ws/BMCar.java
new file mode 100644
index 0000000..482cd32
--- /dev/null
+++ b/src/main/java/com/java/design/factorymethod/ws/BMCar.java
@@ -0,0 +1,8 @@
+package com.java.design.factorymethod.ws;
+
+public class BMCar implements ICar {
+ @Override
+ public void run() {
+ System.out.println("BM run ...");
+ }
+}
diff --git a/src/main/java/com/java/design/factorymethod/ws/BMCarFactory.java b/src/main/java/com/java/design/factorymethod/ws/BMCarFactory.java
new file mode 100644
index 0000000..948cebc
--- /dev/null
+++ b/src/main/java/com/java/design/factorymethod/ws/BMCarFactory.java
@@ -0,0 +1,9 @@
+package com.java.design.factorymethod.ws;
+
+public class BMCarFactory implements ICarFactory {
+ @Override
+ public ICar create() {
+ System.out.println("BMCarFactory create BMCar ...");
+ return new BMCar();
+ }
+}
diff --git a/src/main/java/com/java/design/factorymethod/ws/FactroyMethod.java b/src/main/java/com/java/design/factorymethod/ws/FactroyMethod.java
new file mode 100644
index 0000000..fa453b8
--- /dev/null
+++ b/src/main/java/com/java/design/factorymethod/ws/FactroyMethod.java
@@ -0,0 +1,22 @@
+package com.java.design.factorymethod.ws;
+
+public class FactroyMethod {
+
+
+ public static void main(String[] args) {
+
+ BMCarFactory bmCarFactory = new BMCarFactory();
+ ICar bmCar = bmCarFactory.create();
+ bmCar.run();
+
+ BCCarFactory bcCarFactory = new BCCarFactory();
+ ICar bcCar = bcCarFactory.create();
+ bcCar.run();
+
+
+
+ }
+
+
+
+}
diff --git a/src/main/java/com/java/design/factorymethod/ws/ICar.java b/src/main/java/com/java/design/factorymethod/ws/ICar.java
new file mode 100644
index 0000000..c966744
--- /dev/null
+++ b/src/main/java/com/java/design/factorymethod/ws/ICar.java
@@ -0,0 +1,6 @@
+package com.java.design.factorymethod.ws;
+
+public interface ICar {
+
+ void run();
+}
diff --git a/src/main/java/com/java/design/factorymethod/ws/ICarFactory.java b/src/main/java/com/java/design/factorymethod/ws/ICarFactory.java
new file mode 100644
index 0000000..c16a967
--- /dev/null
+++ b/src/main/java/com/java/design/factorymethod/ws/ICarFactory.java
@@ -0,0 +1,6 @@
+package com.java.design.factorymethod.ws;
+
+public interface ICarFactory {
+
+ ICar create();
+}
diff --git a/java-des/src/com/java/design/flyweight/FlyWeight.java b/src/main/java/com/java/design/flyweight/FlyWeight.java
similarity index 93%
rename from java-des/src/com/java/design/flyweight/FlyWeight.java
rename to src/main/java/com/java/design/flyweight/FlyWeight.java
index 3952022..07b476a 100644
--- a/java-des/src/com/java/design/flyweight/FlyWeight.java
+++ b/src/main/java/com/java/design/flyweight/FlyWeight.java
@@ -1,7 +1,7 @@
-package com.java.design.flyweight;
-
-public interface FlyWeight {
-
- void showIndex(Integer index);
-
-}
+package com.java.design.flyweight;
+
+public interface FlyWeight {
+
+ void showIndex(Integer index);
+
+}
diff --git a/java-des/src/com/java/design/flyweight/FlyWeightFactory.java b/src/main/java/com/java/design/flyweight/FlyWeightFactory.java
similarity index 94%
rename from java-des/src/com/java/design/flyweight/FlyWeightFactory.java
rename to src/main/java/com/java/design/flyweight/FlyWeightFactory.java
index a8b86cc..b232ae5 100644
--- a/java-des/src/com/java/design/flyweight/FlyWeightFactory.java
+++ b/src/main/java/com/java/design/flyweight/FlyWeightFactory.java
@@ -1,28 +1,28 @@
-package com.java.design.flyweight;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class FlyWeightFactory {
-
- private static Map map = new HashMap();
-
- public FlyWeightFactory(Integer index) {
-
- map.put(index, new FlyWeightImpl());
- }
-
- public static FlyWeight getFlyWeight(Integer index) {
- if (!map.containsKey(index)) {
-
- map.put(index, new FlyWeightImpl());
- }
-
- return map.get(index);
- }
-
- public static Integer getSize() {
- return map.size();
- }
-
-}
+package com.java.design.flyweight;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class FlyWeightFactory {
+
+ private static Map map = new HashMap();
+
+ public FlyWeightFactory(Integer index) {
+
+ map.put(index, new FlyWeightImpl());
+ }
+
+ public static FlyWeight getFlyWeight(Integer index) {
+ if (!map.containsKey(index)) {
+
+ map.put(index, new FlyWeightImpl());
+ }
+
+ return map.get(index);
+ }
+
+ public static Integer getSize() {
+ return map.size();
+ }
+
+}
diff --git a/java-des/src/com/java/design/flyweight/FlyWeightImpl.java b/src/main/java/com/java/design/flyweight/FlyWeightImpl.java
similarity index 94%
rename from java-des/src/com/java/design/flyweight/FlyWeightImpl.java
rename to src/main/java/com/java/design/flyweight/FlyWeightImpl.java
index 38755d8..722a966 100644
--- a/java-des/src/com/java/design/flyweight/FlyWeightImpl.java
+++ b/src/main/java/com/java/design/flyweight/FlyWeightImpl.java
@@ -1,10 +1,10 @@
-package com.java.design.flyweight;
-
-public class FlyWeightImpl implements FlyWeight {
-
- @Override
- public void showIndex(Integer index) {
-
- System.out.println("Index : " + index);
- }
-}
+package com.java.design.flyweight;
+
+public class FlyWeightImpl implements FlyWeight {
+
+ @Override
+ public void showIndex(Integer index) {
+
+ System.out.println("Index : " + index);
+ }
+}
diff --git a/java-des/src/com/java/design/flyweight/FlyweightPattern.java b/src/main/java/com/java/design/flyweight/FlyweightPattern.java
similarity index 97%
rename from java-des/src/com/java/design/flyweight/FlyweightPattern.java
rename to src/main/java/com/java/design/flyweight/FlyweightPattern.java
index f802dc4..44a7a5e 100644
--- a/java-des/src/com/java/design/flyweight/FlyweightPattern.java
+++ b/src/main/java/com/java/design/flyweight/FlyweightPattern.java
@@ -1,32 +1,32 @@
-package com.java.design.flyweight;
-
-/**
- * 享元模式(Flyweight Pattern) --↓↓↓---
- * 运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小
- * ,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。
- *
- * @author Administrator
- *
- */
-public class FlyweightPattern {
-
- public static void main(String[] args) {
-
- FlyWeight flyWeight = FlyWeightFactory.getFlyWeight(1);
- FlyWeight flyWeight2 = FlyWeightFactory.getFlyWeight(1);
- System.out.println("is the same ? ---> : " + (flyWeight == flyWeight2));
-
- FlyWeight flyWeight3 = FlyWeightFactory.getFlyWeight(3);
- flyWeight3.showIndex(3);
-
- FlyWeight flyWeight4 = FlyWeightFactory.getFlyWeight(4);
- flyWeight4.showIndex(4);
-
- FlyWeight flyWeight5 = FlyWeightFactory.getFlyWeight(5);
- flyWeight5.showIndex(5);
-
- System.out.println("map size is : " + FlyWeightFactory.getSize());
-
- }
-
-}
+package com.java.design.flyweight;
+
+/**
+ * 享元模式(Flyweight Pattern) --↓↓↓---
+ * 运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小
+ * ,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。
+ *
+ * @author Administrator
+ *
+ */
+public class FlyweightPattern {
+
+ public static void main(String[] args) {
+
+ FlyWeight flyWeight = FlyWeightFactory.getFlyWeight(1);
+ FlyWeight flyWeight2 = FlyWeightFactory.getFlyWeight(1);
+ System.out.println("is the same ? ---> : " + (flyWeight == flyWeight2));
+
+ FlyWeight flyWeight3 = FlyWeightFactory.getFlyWeight(3);
+ flyWeight3.showIndex(3);
+
+ FlyWeight flyWeight4 = FlyWeightFactory.getFlyWeight(4);
+ flyWeight4.showIndex(4);
+
+ FlyWeight flyWeight5 = FlyWeightFactory.getFlyWeight(5);
+ flyWeight5.showIndex(5);
+
+ System.out.println("map size is : " + FlyWeightFactory.getSize());
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/interpreter/AdvanceExpression.java b/src/main/java/com/java/design/interpreter/AdvanceExpression.java
similarity index 94%
rename from java-des/src/com/java/design/interpreter/AdvanceExpression.java
rename to src/main/java/com/java/design/interpreter/AdvanceExpression.java
index bf74551..bf65bfe 100644
--- a/java-des/src/com/java/design/interpreter/AdvanceExpression.java
+++ b/src/main/java/com/java/design/interpreter/AdvanceExpression.java
@@ -1,10 +1,10 @@
-package com.java.design.interpreter;
-
-public class AdvanceExpression extends Expression {
-
- @Override
- void interpret() {
-
- System.out.println("这是一个高级解析器 ...");
- }
-}
+package com.java.design.interpreter;
+
+public class AdvanceExpression extends Expression {
+
+ @Override
+ void interpret() {
+
+ System.out.println("这是一个高级解析器 ...");
+ }
+}
diff --git a/java-des/src/com/java/design/interpreter/Context.java b/src/main/java/com/java/design/interpreter/Context.java
similarity index 94%
rename from java-des/src/com/java/design/interpreter/Context.java
rename to src/main/java/com/java/design/interpreter/Context.java
index bcc9482..b73f541 100644
--- a/java-des/src/com/java/design/interpreter/Context.java
+++ b/src/main/java/com/java/design/interpreter/Context.java
@@ -1,28 +1,28 @@
-package com.java.design.interpreter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Context {
-
- private String content;
-
- private List expressionList = new ArrayList();
-
- public String getContent() {
- return content;
- }
-
- public void setContent(String content) {
- this.content = content;
- }
-
- public void add(Expression expression) {
- expressionList.add(expression);
- }
-
- public List getList() {
- return expressionList;
- }
-
-}
+package com.java.design.interpreter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Context {
+
+ private String content;
+
+ private List expressionList = new ArrayList();
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public void add(Expression expression) {
+ expressionList.add(expression);
+ }
+
+ public List getList() {
+ return expressionList;
+ }
+
+}
diff --git a/java-des/src/com/java/design/interpreter/Expression.java b/src/main/java/com/java/design/interpreter/Expression.java
similarity index 94%
rename from java-des/src/com/java/design/interpreter/Expression.java
rename to src/main/java/com/java/design/interpreter/Expression.java
index a93bb86..283c0ed 100644
--- a/java-des/src/com/java/design/interpreter/Expression.java
+++ b/src/main/java/com/java/design/interpreter/Expression.java
@@ -1,6 +1,6 @@
-package com.java.design.interpreter;
-
-public abstract class Expression {
-
- abstract void interpret();
-}
+package com.java.design.interpreter;
+
+public abstract class Expression {
+
+ abstract void interpret();
+}
diff --git a/java-des/src/com/java/design/interpreter/InterpreterPattern.java b/src/main/java/com/java/design/interpreter/InterpreterPattern.java
similarity index 96%
rename from java-des/src/com/java/design/interpreter/InterpreterPattern.java
rename to src/main/java/com/java/design/interpreter/InterpreterPattern.java
index 67ff29f..88cd559 100644
--- a/java-des/src/com/java/design/interpreter/InterpreterPattern.java
+++ b/src/main/java/com/java/design/interpreter/InterpreterPattern.java
@@ -1,25 +1,25 @@
-package com.java.design.interpreter;
-
-/**
- * 解释器模式 -----> 是一种用得比较少的行为型模式.提供了一种解释语言的语法或表达式的方式. 通过定义一个表达式接口,解释一个特定的上下文.
- *
- * @author Administrator
- *
- */
-public class InterpreterPattern {
-
- public static void main(String[] args) {
-
- Context context = new Context();
- context.add(new SimpleExpression());
- context.add(new SimpleExpression());
- context.add(new AdvanceExpression());
- context.add(new SimpleExpression());
-
- for (Expression ex : context.getList()) {
-
- ex.interpret();
- }
- }
-
-}
+package com.java.design.interpreter;
+
+/**
+ * 解释器模式 -----> 是一种用得比较少的行为型模式.提供了一种解释语言的语法或表达式的方式. 通过定义一个表达式接口,解释一个特定的上下文.
+ *
+ * @author Administrator
+ *
+ */
+public class InterpreterPattern {
+
+ public static void main(String[] args) {
+
+ Context context = new Context();
+ context.add(new SimpleExpression());
+ context.add(new SimpleExpression());
+ context.add(new AdvanceExpression());
+ context.add(new SimpleExpression());
+
+ for (Expression ex : context.getList()) {
+
+ ex.interpret();
+ }
+ }
+
+}
diff --git a/java-des/src/com/java/design/interpreter/SimpleExpression.java b/src/main/java/com/java/design/interpreter/SimpleExpression.java
similarity index 94%
rename from java-des/src/com/java/design/interpreter/SimpleExpression.java
rename to src/main/java/com/java/design/interpreter/SimpleExpression.java
index 2e4bb52..679a5f4 100644
--- a/java-des/src/com/java/design/interpreter/SimpleExpression.java
+++ b/src/main/java/com/java/design/interpreter/SimpleExpression.java
@@ -1,10 +1,10 @@
-package com.java.design.interpreter;
-
-public class SimpleExpression extends Expression {
-
- @Override
- void interpret() {
-
- System.out.println("这是一个简单的解析器 ...");
- }
-}
+package com.java.design.interpreter;
+
+public class SimpleExpression extends Expression {
+
+ @Override
+ void interpret() {
+
+ System.out.println("这是一个简单的解析器 ...");
+ }
+}
diff --git a/java-des/src/com/java/design/iterator/Iterator.java b/src/main/java/com/java/design/iterator/Iterator.java
similarity index 91%
rename from java-des/src/com/java/design/iterator/Iterator.java
rename to src/main/java/com/java/design/iterator/Iterator.java
index 156a3dd..0a9f12a 100644
--- a/java-des/src/com/java/design/iterator/Iterator.java
+++ b/src/main/java/com/java/design/iterator/Iterator.java
@@ -1,12 +1,12 @@
-package com.java.design.iterator;
-
-public interface Iterator {
-
- Object next();
-
- void first();
-
- void last();
-
- boolean hasNext();
-}
+package com.java.design.iterator;
+
+public interface Iterator {
+
+ Object next();
+
+ void first();
+
+ void last();
+
+ boolean hasNext();
+}
diff --git a/java-des/src/com/java/design/iterator/IteratorImpl.java b/src/main/java/com/java/design/iterator/IteratorImpl.java
similarity index 93%
rename from java-des/src/com/java/design/iterator/IteratorImpl.java
rename to src/main/java/com/java/design/iterator/IteratorImpl.java
index c1c7f11..65022ef 100644
--- a/java-des/src/com/java/design/iterator/IteratorImpl.java
+++ b/src/main/java/com/java/design/iterator/IteratorImpl.java
@@ -1,36 +1,36 @@
-package com.java.design.iterator;
-
-public class IteratorImpl implements Iterator {
-
- private List list;
-
- private Integer index;
-
- public IteratorImpl(List list) {
- index = 0;
- this.list = list;
- }
-
- @Override
- public Object next() {
- Object object = list.get(index);
- index++;
- return object;
- }
-
- @Override
- public void first() {
- index = 0;
- }
-
- @Override
- public void last() {
- index = list.getSize();
- }
-
- @Override
- public boolean hasNext() {
- return index < list.getSize();
- }
-
-}
+package com.java.design.iterator;
+
+public class IteratorImpl implements Iterator {
+
+ private List list;
+
+ private Integer index;
+
+ public IteratorImpl(List list) {
+ index = 0;
+ this.list = list;
+ }
+
+ @Override
+ public Object next() {
+ Object object = list.get(index);
+ index++;
+ return object;
+ }
+
+ @Override
+ public void first() {
+ index = 0;
+ }
+
+ @Override
+ public void last() {
+ index = list.getSize();
+ }
+
+ @Override
+ public boolean hasNext() {
+ return index < list.getSize();
+ }
+
+}
diff --git a/java-des/src/com/java/design/iterator/IteratorPattern.java b/src/main/java/com/java/design/iterator/IteratorPattern.java
similarity index 95%
rename from java-des/src/com/java/design/iterator/IteratorPattern.java
rename to src/main/java/com/java/design/iterator/IteratorPattern.java
index b6a4b29..b065fda 100644
--- a/java-des/src/com/java/design/iterator/IteratorPattern.java
+++ b/src/main/java/com/java/design/iterator/IteratorPattern.java
@@ -1,35 +1,35 @@
-package com.java.design.iterator;
-
-/**
- * 迭代器模式(Iterator)-----> 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。
- *
- * @author Administrator
- *
- */
-public class IteratorPattern {
-
- public static void main(String[] args) {
-
- List list = new ListImpl();
- list.add("a");
- list.add("b");
- list.add("c");
- list.add("d");
-
- // 第一种迭代方式
- Iterator iterator = list.iterator();
- while (iterator.hasNext()) {
-
- System.out.println(iterator.next());
- }
-
- System.out.println("----------------------");
- // 第二种迭代方式
- for (int i = 0; i < list.getSize(); i++) {
-
- System.out.println(list.get(i));
- }
-
- }
-
-}
+package com.java.design.iterator;
+
+/**
+ * 迭代器模式(Iterator)-----> 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。
+ *
+ * @author Administrator
+ *
+ */
+public class IteratorPattern {
+
+ public static void main(String[] args) {
+
+ List list = new ListImpl();
+ list.add("a");
+ list.add("b");
+ list.add("c");
+ list.add("d");
+
+ // 第一种迭代方式
+ Iterator iterator = list.iterator();
+ while (iterator.hasNext()) {
+
+ System.out.println(iterator.next());
+ }
+
+ System.out.println("----------------------");
+ // 第二种迭代方式
+ for (int i = 0; i < list.getSize(); i++) {
+
+ System.out.println(list.get(i));
+ }
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/iterator/List.java b/src/main/java/com/java/design/iterator/List.java
similarity index 92%
rename from java-des/src/com/java/design/iterator/List.java
rename to src/main/java/com/java/design/iterator/List.java
index d5abb7d..25c06a1 100644
--- a/java-des/src/com/java/design/iterator/List.java
+++ b/src/main/java/com/java/design/iterator/List.java
@@ -1,12 +1,12 @@
-package com.java.design.iterator;
-
-public interface List {
-
- Iterator iterator();
-
- Object get(Integer index);
-
- Integer getSize();
-
- void add(Object obj);
-}
+package com.java.design.iterator;
+
+public interface List {
+
+ Iterator iterator();
+
+ Object get(Integer index);
+
+ Integer getSize();
+
+ void add(Object obj);
+}
diff --git a/java-des/src/com/java/design/iterator/ListImpl.java b/src/main/java/com/java/design/iterator/ListImpl.java
similarity index 93%
rename from java-des/src/com/java/design/iterator/ListImpl.java
rename to src/main/java/com/java/design/iterator/ListImpl.java
index fd4e146..851cc2d 100644
--- a/java-des/src/com/java/design/iterator/ListImpl.java
+++ b/src/main/java/com/java/design/iterator/ListImpl.java
@@ -1,39 +1,39 @@
-package com.java.design.iterator;
-
-public class ListImpl implements List {
-
- private Object[] list;
-
- private Integer index;
-
- private Integer size;
-
- public ListImpl() {
-
- index = 0;
- size = 0;
- list = new Object[100];
- }
-
- @Override
- public Iterator iterator() {
- return new IteratorImpl(this);
- }
-
- @Override
- public Object get(Integer index) {
- return list[index];
- }
-
- @Override
- public Integer getSize() {
- return this.size;
- }
-
- @Override
- public void add(Object obj) {
-
- list[index++] = obj;
- size++;
- }
-}
+package com.java.design.iterator;
+
+public class ListImpl implements List {
+
+ private Object[] list;
+
+ private Integer index;
+
+ private Integer size;
+
+ public ListImpl() {
+
+ index = 0;
+ size = 0;
+ list = new Object[100];
+ }
+
+ @Override
+ public Iterator iterator() {
+ return new IteratorImpl(this);
+ }
+
+ @Override
+ public Object get(Integer index) {
+ return list[index];
+ }
+
+ @Override
+ public Integer getSize() {
+ return this.size;
+ }
+
+ @Override
+ public void add(Object obj) {
+
+ list[index++] = obj;
+ size++;
+ }
+}
diff --git a/java-des/src/com/java/design/mediator/Colleague.java b/src/main/java/com/java/design/mediator/Colleague.java
similarity index 93%
rename from java-des/src/com/java/design/mediator/Colleague.java
rename to src/main/java/com/java/design/mediator/Colleague.java
index c1ed03e..9860717 100644
--- a/java-des/src/com/java/design/mediator/Colleague.java
+++ b/src/main/java/com/java/design/mediator/Colleague.java
@@ -1,15 +1,15 @@
-package com.java.design.mediator;
-
-public class Colleague {
-
- protected String name;
-
- protected Mediator mediator;
-
- public Colleague(String name, Mediator mediator) {
-
- this.mediator = mediator;
- this.name = name;
- }
-
-}
+package com.java.design.mediator;
+
+public class Colleague {
+
+ protected String name;
+
+ protected Mediator mediator;
+
+ public Colleague(String name, Mediator mediator) {
+
+ this.mediator = mediator;
+ this.name = name;
+ }
+
+}
diff --git a/java-des/src/com/java/design/mediator/ColleagueA.java b/src/main/java/com/java/design/mediator/ColleagueA.java
similarity index 94%
rename from java-des/src/com/java/design/mediator/ColleagueA.java
rename to src/main/java/com/java/design/mediator/ColleagueA.java
index 44c9845..81d8807 100644
--- a/java-des/src/com/java/design/mediator/ColleagueA.java
+++ b/src/main/java/com/java/design/mediator/ColleagueA.java
@@ -1,20 +1,20 @@
-package com.java.design.mediator;
-
-public class ColleagueA extends Colleague {
-
- public ColleagueA(String name, Mediator mediator) {
-
- super(name, mediator);
- }
-
- public void getMessage(String message) {
-
- System.out.println(name + "收到消息:" + message);
- }
-
- // 与中介者通讯
- public void contact(String message) {
- mediator.contact(message, this);
- }
-
-}
+package com.java.design.mediator;
+
+public class ColleagueA extends Colleague {
+
+ public ColleagueA(String name, Mediator mediator) {
+
+ super(name, mediator);
+ }
+
+ public void getMessage(String message) {
+
+ System.out.println(name + "收到消息:" + message);
+ }
+
+ // 与中介者通讯
+ public void contact(String message) {
+ mediator.contact(message, this);
+ }
+
+}
diff --git a/java-des/src/com/java/design/mediator/ColleagueB.java b/src/main/java/com/java/design/mediator/ColleagueB.java
similarity index 94%
rename from java-des/src/com/java/design/mediator/ColleagueB.java
rename to src/main/java/com/java/design/mediator/ColleagueB.java
index 869c26d..654b811 100644
--- a/java-des/src/com/java/design/mediator/ColleagueB.java
+++ b/src/main/java/com/java/design/mediator/ColleagueB.java
@@ -1,20 +1,20 @@
-package com.java.design.mediator;
-
-public class ColleagueB extends Colleague {
-
- public ColleagueB(String name, Mediator mediator) {
-
- super(name, mediator);
- }
-
- public void getMessage(String message) {
-
- System.out.println(name + "收到消息:" + message);
- }
-
- // 与中介者通讯
- public void contact(String message) {
- mediator.contact(message, this);
- }
-
-}
+package com.java.design.mediator;
+
+public class ColleagueB extends Colleague {
+
+ public ColleagueB(String name, Mediator mediator) {
+
+ super(name, mediator);
+ }
+
+ public void getMessage(String message) {
+
+ System.out.println(name + "收到消息:" + message);
+ }
+
+ // 与中介者通讯
+ public void contact(String message) {
+ mediator.contact(message, this);
+ }
+
+}
diff --git a/java-des/src/com/java/design/mediator/ConcreteMediator.java b/src/main/java/com/java/design/mediator/ConcreteMediator.java
similarity index 95%
rename from java-des/src/com/java/design/mediator/ConcreteMediator.java
rename to src/main/java/com/java/design/mediator/ConcreteMediator.java
index 662d54b..0799f7a 100644
--- a/java-des/src/com/java/design/mediator/ConcreteMediator.java
+++ b/src/main/java/com/java/design/mediator/ConcreteMediator.java
@@ -1,42 +1,42 @@
-package com.java.design.mediator;
-
-/**
- * 定义具体中介者ConcreteMediator,具体中介者通过协调各同事对象实现协作行为,了解并维护它的各个同事。
- *
- * @author Administrator
- *
- */
-public class ConcreteMediator extends Mediator {
-
- ColleagueA colleagueA;
-
- ColleagueB colleagueB;
-
- public ColleagueA getColleagueA() {
- return colleagueA;
- }
-
- public void setColleagueA(ColleagueA colleagueA) {
- this.colleagueA = colleagueA;
- }
-
- public ColleagueB getColleagueB() {
- return colleagueB;
- }
-
- public void setColleagueB(ColleagueB colleagueB) {
- this.colleagueB = colleagueB;
- }
-
- @Override
- public void contact(String message, Colleague colleague) {
-
- if (colleague == colleagueA) {
- // 制定规则 : 如果是A 则发送给 B
- colleagueB.getMessage(message);
- } else if (colleague == colleagueB) {
- // 如果是B 则发送给A
- colleagueA.getMessage(message);
- }
- }
-}
+package com.java.design.mediator;
+
+/**
+ * 定义具体中介者ConcreteMediator,具体中介者通过协调各同事对象实现协作行为,了解并维护它的各个同事。
+ *
+ * @author Administrator
+ *
+ */
+public class ConcreteMediator extends Mediator {
+
+ ColleagueA colleagueA;
+
+ ColleagueB colleagueB;
+
+ public ColleagueA getColleagueA() {
+ return colleagueA;
+ }
+
+ public void setColleagueA(ColleagueA colleagueA) {
+ this.colleagueA = colleagueA;
+ }
+
+ public ColleagueB getColleagueB() {
+ return colleagueB;
+ }
+
+ public void setColleagueB(ColleagueB colleagueB) {
+ this.colleagueB = colleagueB;
+ }
+
+ @Override
+ public void contact(String message, Colleague colleague) {
+
+ if (colleague == colleagueA) {
+ // 制定规则 : 如果是A 则发送给 B
+ colleagueB.getMessage(message);
+ } else if (colleague == colleagueB) {
+ // 如果是B 则发送给A
+ colleagueA.getMessage(message);
+ }
+ }
+}
diff --git a/java-des/src/com/java/design/mediator/Mediator.java b/src/main/java/com/java/design/mediator/Mediator.java
similarity index 95%
rename from java-des/src/com/java/design/mediator/Mediator.java
rename to src/main/java/com/java/design/mediator/Mediator.java
index 34c0670..311b9be 100644
--- a/java-des/src/com/java/design/mediator/Mediator.java
+++ b/src/main/java/com/java/design/mediator/Mediator.java
@@ -1,13 +1,13 @@
-package com.java.design.mediator;
-
-/**
- * 定义抽象 Mediator 中介者 ,可以与其他同时进行联络
- *
- * @author Administrator
- *
- */
-public abstract class Mediator {
-
- public abstract void contact(String message, Colleague colleague);
-
-}
+package com.java.design.mediator;
+
+/**
+ * 定义抽象 Mediator 中介者 ,可以与其他同时进行联络
+ *
+ * @author Administrator
+ *
+ */
+public abstract class Mediator {
+
+ public abstract void contact(String message, Colleague colleague);
+
+}
diff --git a/java-des/src/com/java/design/mediator/MediatorPattern.java b/src/main/java/com/java/design/mediator/MediatorPattern.java
similarity index 97%
rename from java-des/src/com/java/design/mediator/MediatorPattern.java
rename to src/main/java/com/java/design/mediator/MediatorPattern.java
index 396b2f0..34de3dc 100644
--- a/java-des/src/com/java/design/mediator/MediatorPattern.java
+++ b/src/main/java/com/java/design/mediator/MediatorPattern.java
@@ -1,21 +1,21 @@
-package com.java.design.mediator;
-
-/**
- * 中介者模式 -----> 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
- *
- * @author Administrator
- *
- */
-public class MediatorPattern {
-
- public static void main(String[] args) {
-
- ConcreteMediator mediator = new ConcreteMediator();
- ColleagueA colleagueA = new ColleagueA("A", mediator);
- ColleagueB colleagueB = new ColleagueB("B", mediator);
- mediator.setColleagueA(colleagueA);
- mediator.setColleagueB(colleagueB);
- colleagueA.contact("B 啊 我在找你啊 ...");
- colleagueB.contact("A 啊 我在找你啊 ...");
- }
-}
+package com.java.design.mediator;
+
+/**
+ * 中介者模式 -----> 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
+ *
+ * @author Administrator
+ *
+ */
+public class MediatorPattern {
+
+ public static void main(String[] args) {
+
+ ConcreteMediator mediator = new ConcreteMediator();
+ ColleagueA colleagueA = new ColleagueA("A", mediator);
+ ColleagueB colleagueB = new ColleagueB("B", mediator);
+ mediator.setColleagueA(colleagueA);
+ mediator.setColleagueB(colleagueB);
+ colleagueA.contact("B 啊 我在找你啊 ...");
+ colleagueB.contact("A 啊 我在找你啊 ...");
+ }
+}
diff --git a/java-des/src/com/java/design/memento/Caretaker.java b/src/main/java/com/java/design/memento/Caretaker.java
similarity index 92%
rename from java-des/src/com/java/design/memento/Caretaker.java
rename to src/main/java/com/java/design/memento/Caretaker.java
index daef35d..759ab6b 100644
--- a/java-des/src/com/java/design/memento/Caretaker.java
+++ b/src/main/java/com/java/design/memento/Caretaker.java
@@ -1,21 +1,21 @@
-package com.java.design.memento;
-
-/**
- * 用于保存
- *
- * @author Administrator
- *
- */
-public class Caretaker {
-
- private Memento memento;
-
- public Memento getMemento() {
- return memento;
- }
-
- public void setMemento(Memento memento) {
- this.memento = memento;
- }
-
-}
+package com.java.design.memento;
+
+/**
+ * 用于保存
+ *
+ * @author Administrator
+ *
+ */
+public class Caretaker {
+
+ private Memento memento;
+
+ public Memento getMemento() {
+ return memento;
+ }
+
+ public void setMemento(Memento memento) {
+ this.memento = memento;
+ }
+
+}
diff --git a/java-des/src/com/java/design/memento/Memento.java b/src/main/java/com/java/design/memento/Memento.java
similarity index 92%
rename from java-des/src/com/java/design/memento/Memento.java
rename to src/main/java/com/java/design/memento/Memento.java
index 6a6f913..fcf6424 100644
--- a/java-des/src/com/java/design/memento/Memento.java
+++ b/src/main/java/com/java/design/memento/Memento.java
@@ -1,20 +1,20 @@
-package com.java.design.memento;
-
-public class Memento {
-
- private String state;
-
- public Memento(String state) {
-
- this.state = state;
- }
-
- public String getState() {
- return state;
- }
-
- public void setState(String state) {
- this.state = state;
- }
-
-}
+package com.java.design.memento;
+
+public class Memento {
+
+ private String state;
+
+ public Memento(String state) {
+
+ this.state = state;
+ }
+
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+}
diff --git a/java-des/src/com/java/design/memento/MementoPattern.java b/src/main/java/com/java/design/memento/MementoPattern.java
similarity index 96%
rename from java-des/src/com/java/design/memento/MementoPattern.java
rename to src/main/java/com/java/design/memento/MementoPattern.java
index 64b8d01..f5450bc 100644
--- a/java-des/src/com/java/design/memento/MementoPattern.java
+++ b/src/main/java/com/java/design/memento/MementoPattern.java
@@ -1,29 +1,29 @@
-package com.java.design.memento;
-
-/**
- * 备忘录模式 -----> 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态
- *
- * @author Administrator
- *
- */
-public class MementoPattern {
-
- public static void main(String[] args) {
-
- Originator originator = new Originator();
- originator.setState("在洗澡 ...");
- originator.showState();
-
- // 状态进行保存
- Caretaker caretaker = new Caretaker();
- caretaker.setMemento(originator.createMemento());
-
- originator.setState("在吃饭 ...");
- originator.showState();
-
- // 重新将状态拿出来
- originator.setMemento(caretaker.getMemento());
- originator.showState();
- }
-
-}
+package com.java.design.memento;
+
+/**
+ * 备忘录模式 -----> 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态
+ *
+ * @author Administrator
+ *
+ */
+public class MementoPattern {
+
+ public static void main(String[] args) {
+
+ Originator originator = new Originator();
+ originator.setState("在洗澡 ...");
+ originator.showState();
+
+ // 状态进行保存
+ Caretaker caretaker = new Caretaker();
+ caretaker.setMemento(originator.createMemento());
+
+ originator.setState("在吃饭 ...");
+ originator.showState();
+
+ // 重新将状态拿出来
+ originator.setMemento(caretaker.getMemento());
+ originator.showState();
+ }
+
+}
diff --git a/java-des/src/com/java/design/memento/Originator.java b/src/main/java/com/java/design/memento/Originator.java
similarity index 93%
rename from java-des/src/com/java/design/memento/Originator.java
rename to src/main/java/com/java/design/memento/Originator.java
index 8afa011..519c284 100644
--- a/java-des/src/com/java/design/memento/Originator.java
+++ b/src/main/java/com/java/design/memento/Originator.java
@@ -1,29 +1,29 @@
-package com.java.design.memento;
-
-public class Originator {
-
- private String state;
-
- public String getState() {
- return state;
- }
-
- public void setState(String state) {
- this.state = state;
- }
-
- public Memento createMemento() {
- return new Memento(state);
- }
-
- public void setMemento(Memento memento) {
-
- state = memento.getState();
- }
-
- public void showState() {
-
- System.out.println(state);
- }
-
-}
+package com.java.design.memento;
+
+public class Originator {
+
+ private String state;
+
+ public String getState() {
+ return state;
+ }
+
+ public void setState(String state) {
+ this.state = state;
+ }
+
+ public Memento createMemento() {
+ return new Memento(state);
+ }
+
+ public void setMemento(Memento memento) {
+
+ state = memento.getState();
+ }
+
+ public void showState() {
+
+ System.out.println(state);
+ }
+
+}
diff --git a/java-des/src/com/java/design/observer/Observer.java b/src/main/java/com/java/design/observer/Observer.java
similarity index 92%
rename from java-des/src/com/java/design/observer/Observer.java
rename to src/main/java/com/java/design/observer/Observer.java
index ed48ea5..d42c5ef 100644
--- a/java-des/src/com/java/design/observer/Observer.java
+++ b/src/main/java/com/java/design/observer/Observer.java
@@ -1,12 +1,12 @@
-package com.java.design.observer;
-
-/**
- * 观察者接口
- *
- * @author Administrator
- *
- */
-public interface Observer {
-
- void update(String message);
-}
+package com.java.design.observer;
+
+/**
+ * 观察者接口
+ *
+ * @author Administrator
+ *
+ */
+public interface Observer {
+
+ void update(String message);
+}
diff --git a/java-des/src/com/java/design/observer/ObserverPattern.java b/src/main/java/com/java/design/observer/ObserverPattern.java
similarity index 96%
rename from java-des/src/com/java/design/observer/ObserverPattern.java
rename to src/main/java/com/java/design/observer/ObserverPattern.java
index cea2cdb..a377d9c 100644
--- a/java-des/src/com/java/design/observer/ObserverPattern.java
+++ b/src/main/java/com/java/design/observer/ObserverPattern.java
@@ -1,32 +1,32 @@
-package com.java.design.observer;
-
-/**
- * 观察者模式 -----> 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。
- *
- * 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息
- *
- * @author Administrator
- *
- */
-public class ObserverPattern {
-
- public static void main(String[] args) {
-
- ObserverServer observerServer = new ObserverServer();
- Observer observerA = new User("A");
- Observer observerB = new User("B");
- Observer observerC = new User("C");
-
- observerServer.add(observerA);
- observerServer.add(observerB);
- observerServer.add(observerC);
- observerServer.setInfomation("PHP是世界上最好的语言 ...");
-
- System.out.println("------------------------------");
-
- observerServer.remove(observerB);
- observerServer.setInfomation("JAVA是世界上最好的语言 ...");
-
- }
-
-}
+package com.java.design.observer;
+
+/**
+ * 观察者模式 -----> 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。
+ *
+ * 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息
+ *
+ * @author Administrator
+ *
+ */
+public class ObserverPattern {
+
+ public static void main(String[] args) {
+
+ ObserverServer observerServer = new ObserverServer();
+ Observer observerA = new User("A");
+ Observer observerB = new User("B");
+ Observer observerC = new User("C");
+
+ observerServer.add(observerA);
+ observerServer.add(observerB);
+ observerServer.add(observerC);
+ observerServer.setInfomation("PHP是世界上最好的语言 ...");
+
+ System.out.println("------------------------------");
+
+ observerServer.remove(observerB);
+ observerServer.setInfomation("JAVA是世界上最好的语言 ...");
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/observer/ObserverServer.java b/src/main/java/com/java/design/observer/ObserverServer.java
similarity index 94%
rename from java-des/src/com/java/design/observer/ObserverServer.java
rename to src/main/java/com/java/design/observer/ObserverServer.java
index 340ea1d..195a5fb 100644
--- a/java-des/src/com/java/design/observer/ObserverServer.java
+++ b/src/main/java/com/java/design/observer/ObserverServer.java
@@ -1,50 +1,50 @@
-package com.java.design.observer;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 被观察者服务
- *
- * @author Administrator
- *
- */
-public class ObserverServer implements Observerable {
-
- private List observers;
- private String message;
-
- public ObserverServer() {
- observers = new ArrayList();
- }
-
- @Override
- public void add(Observer observer) {
-
- observers.add(observer);
- }
-
- @Override
- public void remove(Observer observer) {
-
- if (!observers.isEmpty()) {
- observers.remove(observer);
- }
- }
-
- @Override
- public void notifyObs() {
-
- for (int i = 0; i < observers.size(); i++) {
- Observer obs = observers.get(i);
- obs.update(message);
- }
- }
-
- public void setInfomation(String message) {
- this.message = message;
- System.out.println("服务更新消息:" + message);
- notifyObs();
- }
-
-}
+package com.java.design.observer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 被观察者服务
+ *
+ * @author Administrator
+ *
+ */
+public class ObserverServer implements Observerable {
+
+ private List observers;
+ private String message;
+
+ public ObserverServer() {
+ observers = new ArrayList();
+ }
+
+ @Override
+ public void add(Observer observer) {
+
+ observers.add(observer);
+ }
+
+ @Override
+ public void remove(Observer observer) {
+
+ if (!observers.isEmpty()) {
+ observers.remove(observer);
+ }
+ }
+
+ @Override
+ public void notifyObs() {
+
+ for (int i = 0; i < observers.size(); i++) {
+ Observer obs = observers.get(i);
+ obs.update(message);
+ }
+ }
+
+ public void setInfomation(String message) {
+ this.message = message;
+ System.out.println("服务更新消息:" + message);
+ notifyObs();
+ }
+
+}
diff --git a/java-des/src/com/java/design/observer/Observerable.java b/src/main/java/com/java/design/observer/Observerable.java
similarity index 93%
rename from java-des/src/com/java/design/observer/Observerable.java
rename to src/main/java/com/java/design/observer/Observerable.java
index 8248a79..4ce4298 100644
--- a/java-des/src/com/java/design/observer/Observerable.java
+++ b/src/main/java/com/java/design/observer/Observerable.java
@@ -1,31 +1,31 @@
-package com.java.design.observer;
-
-/**
- * 被观察者接口 / 声明了添加、删除、通知观察者方法
- *
- * @author Administrator
- *
- */
-public interface Observerable {
-
- /**
- * 添加观察者
- *
- * @param observer
- */
- void add(Observer observer);
-
- /**
- * 删除观察者
- *
- * @param observer
- */
- void remove(Observer observer);
-
- /**
- * 通知观察者
- *
- */
- void notifyObs();
-
-}
+package com.java.design.observer;
+
+/**
+ * 被观察者接口 / 声明了添加、删除、通知观察者方法
+ *
+ * @author Administrator
+ *
+ */
+public interface Observerable {
+
+ /**
+ * 添加观察者
+ *
+ * @param observer
+ */
+ void add(Observer observer);
+
+ /**
+ * 删除观察者
+ *
+ * @param observer
+ */
+ void remove(Observer observer);
+
+ /**
+ * 通知观察者
+ *
+ */
+ void notifyObs();
+
+}
diff --git a/java-des/src/com/java/design/observer/User.java b/src/main/java/com/java/design/observer/User.java
similarity index 93%
rename from java-des/src/com/java/design/observer/User.java
rename to src/main/java/com/java/design/observer/User.java
index ab85e98..1471a49 100644
--- a/java-des/src/com/java/design/observer/User.java
+++ b/src/main/java/com/java/design/observer/User.java
@@ -1,23 +1,23 @@
-package com.java.design.observer;
-
-public class User implements Observer {
-
- private String name;
- private String message;
-
- public User(String name) {
- this.name = name;
- }
-
- @Override
- public void update(String message) {
-
- this.message = message;
- read();
- }
-
- public void read() {
-
- System.out.println(name + "收到推送消息:" + message);
- }
-}
+package com.java.design.observer;
+
+public class User implements Observer {
+
+ private String name;
+ private String message;
+
+ public User(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public void update(String message) {
+
+ this.message = message;
+ read();
+ }
+
+ public void read() {
+
+ System.out.println(name + "收到推送消息:" + message);
+ }
+}
diff --git a/java-des/src/com/java/design/prototype/ConcreatePrototype.java b/src/main/java/com/java/design/prototype/ConcreatePrototype.java
similarity index 94%
rename from java-des/src/com/java/design/prototype/ConcreatePrototype.java
rename to src/main/java/com/java/design/prototype/ConcreatePrototype.java
index 8e60226..a49bd2e 100644
--- a/java-des/src/com/java/design/prototype/ConcreatePrototype.java
+++ b/src/main/java/com/java/design/prototype/ConcreatePrototype.java
@@ -1,9 +1,9 @@
-package com.java.design.prototype;
-
-public class ConcreatePrototype extends Prototype {
-
- public ConcreatePrototype(String name) {
- setName(name);
- }
-
-}
+package com.java.design.prototype;
+
+public class ConcreatePrototype extends Prototype {
+
+ public ConcreatePrototype(String name) {
+ setName(name);
+ }
+
+}
diff --git a/java-des/src/com/java/design/prototype/Prototype.java b/src/main/java/com/java/design/prototype/Prototype.java
similarity index 94%
rename from java-des/src/com/java/design/prototype/Prototype.java
rename to src/main/java/com/java/design/prototype/Prototype.java
index 975107a..f292d8b 100644
--- a/java-des/src/com/java/design/prototype/Prototype.java
+++ b/src/main/java/com/java/design/prototype/Prototype.java
@@ -1,19 +1,19 @@
-package com.java.design.prototype;
-
-public class Prototype implements Cloneable {
-
- private String name;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- protected Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-}
+package com.java.design.prototype;
+
+public class Prototype implements Cloneable {
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ protected Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+}
diff --git a/java-des/src/com/java/design/prototype/PrototypePattern.java b/src/main/java/com/java/design/prototype/PrototypePattern.java
similarity index 96%
rename from java-des/src/com/java/design/prototype/PrototypePattern.java
rename to src/main/java/com/java/design/prototype/PrototypePattern.java
index 3ccf278..5afe096 100644
--- a/java-des/src/com/java/design/prototype/PrototypePattern.java
+++ b/src/main/java/com/java/design/prototype/PrototypePattern.java
@@ -1,20 +1,20 @@
-package com.java.design.prototype;
-
-/**
- * 原型模式 -----> 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
- *
- * @author Administrator
- *
- */
-public class PrototypePattern {
-
- public static void main(String[] args) throws CloneNotSupportedException {
-
- Prototype prototype = new ConcreatePrototype("Folger");
- Prototype prototype2 = (Prototype) prototype.clone();
-
- System.out.println(prototype + " " + prototype.getName());
- System.out.println(prototype2 + " " + prototype2.getName());
- }
-
-}
+package com.java.design.prototype;
+
+/**
+ * 原型模式 -----> 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
+ *
+ * @author Administrator
+ *
+ */
+public class PrototypePattern {
+
+ public static void main(String[] args) throws CloneNotSupportedException {
+
+ Prototype prototype = new ConcreatePrototype("Folger");
+ Prototype prototype2 = (Prototype) prototype.clone();
+
+ System.out.println(prototype + " " + prototype.getName());
+ System.out.println(prototype2 + " " + prototype2.getName());
+ }
+
+}
diff --git a/java-des/src/com/java/design/proxy/Dog.java b/src/main/java/com/java/design/proxy/Dog.java
similarity index 91%
rename from java-des/src/com/java/design/proxy/Dog.java
rename to src/main/java/com/java/design/proxy/Dog.java
index 8a6f558..48b1870 100644
--- a/java-des/src/com/java/design/proxy/Dog.java
+++ b/src/main/java/com/java/design/proxy/Dog.java
@@ -1,7 +1,7 @@
-package com.java.design.proxy;
-
-public interface Dog {
-
- void eat();
-
-}
+package com.java.design.proxy;
+
+public interface Dog {
+
+ void eat();
+
+}
diff --git a/java-des/src/com/java/design/proxy/DogImpl.java b/src/main/java/com/java/design/proxy/DogImpl.java
similarity index 93%
rename from java-des/src/com/java/design/proxy/DogImpl.java
rename to src/main/java/com/java/design/proxy/DogImpl.java
index 0321550..95345b5 100644
--- a/java-des/src/com/java/design/proxy/DogImpl.java
+++ b/src/main/java/com/java/design/proxy/DogImpl.java
@@ -1,10 +1,10 @@
-package com.java.design.proxy;
-
-public class DogImpl implements Dog {
-
- @Override
- public void eat() {
-
- System.out.println("Dog eating shit !");
- }
-}
+package com.java.design.proxy;
+
+public class DogImpl implements Dog {
+
+ @Override
+ public void eat() {
+
+ System.out.println("Dog eating shit !");
+ }
+}
diff --git a/java-des/src/com/java/design/proxy/DogProxy.java b/src/main/java/com/java/design/proxy/DogProxy.java
similarity index 94%
rename from java-des/src/com/java/design/proxy/DogProxy.java
rename to src/main/java/com/java/design/proxy/DogProxy.java
index 3c51ef2..12a70da 100644
--- a/java-des/src/com/java/design/proxy/DogProxy.java
+++ b/src/main/java/com/java/design/proxy/DogProxy.java
@@ -1,17 +1,17 @@
-package com.java.design.proxy;
-
-public class DogProxy implements Dog {
-
- Dog dog;
-
- public DogProxy() {
- dog = new DogImpl();
- }
-
- @Override
- public void eat() {
- System.out.println("静态代理开始 ...");
- dog.eat();
- System.out.println("静态代理结束 ...");
- }
-}
+package com.java.design.proxy;
+
+public class DogProxy implements Dog {
+
+ Dog dog;
+
+ public DogProxy() {
+ dog = new DogImpl();
+ }
+
+ @Override
+ public void eat() {
+ System.out.println("静态代理开始 ...");
+ dog.eat();
+ System.out.println("静态代理结束 ...");
+ }
+}
diff --git a/java-des/src/com/java/design/proxy/ProxyPattern.java b/src/main/java/com/java/design/proxy/ProxyPattern.java
similarity index 95%
rename from java-des/src/com/java/design/proxy/ProxyPattern.java
rename to src/main/java/com/java/design/proxy/ProxyPattern.java
index 1009b33..01b72bc 100644
--- a/java-des/src/com/java/design/proxy/ProxyPattern.java
+++ b/src/main/java/com/java/design/proxy/ProxyPattern.java
@@ -1,18 +1,18 @@
-package com.java.design.proxy;
-
-/**
- * 代理模式 -----> 所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。
- *
- * @author Administrator
- *
- */
-public class ProxyPattern {
-
- public static void main(String[] args) {
-
- // 这里示范的为静态代理模式
- Dog dog = new DogProxy();
- dog.eat();
- }
-
-}
+package com.java.design.proxy;
+
+/**
+ * 代理模式 -----> 所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。
+ *
+ * @author Administrator
+ *
+ */
+public class ProxyPattern {
+
+ public static void main(String[] args) {
+
+ // 这里示范的为静态代理模式
+ Dog dog = new DogProxy();
+ dog.eat();
+ }
+
+}
diff --git a/src/main/java/com/java/design/proxy/ws/BlackCat.java b/src/main/java/com/java/design/proxy/ws/BlackCat.java
new file mode 100644
index 0000000..2eb4dfe
--- /dev/null
+++ b/src/main/java/com/java/design/proxy/ws/BlackCat.java
@@ -0,0 +1,10 @@
+package com.java.design.proxy.ws;
+
+public class BlackCat implements Cat {
+
+
+ @Override
+ public void eat() {
+ System.out.println("吃猫粮。。。。。。");
+ }
+}
diff --git a/src/main/java/com/java/design/proxy/ws/Cat.java b/src/main/java/com/java/design/proxy/ws/Cat.java
new file mode 100644
index 0000000..e1c603c
--- /dev/null
+++ b/src/main/java/com/java/design/proxy/ws/Cat.java
@@ -0,0 +1,6 @@
+package com.java.design.proxy.ws;
+
+public interface Cat {
+
+ void eat();
+}
diff --git a/src/main/java/com/java/design/proxy/ws/Main.java b/src/main/java/com/java/design/proxy/ws/Main.java
new file mode 100644
index 0000000..5c065b8
--- /dev/null
+++ b/src/main/java/com/java/design/proxy/ws/Main.java
@@ -0,0 +1,11 @@
+package com.java.design.proxy.ws;
+
+public class Main {
+
+ public static void main(String[] args) {
+
+ ProxyCat proxyCat = new ProxyCat();
+ proxyCat.eat();
+ }
+
+}
diff --git a/src/main/java/com/java/design/proxy/ws/ProxyCat.java b/src/main/java/com/java/design/proxy/ws/ProxyCat.java
new file mode 100644
index 0000000..37e4114
--- /dev/null
+++ b/src/main/java/com/java/design/proxy/ws/ProxyCat.java
@@ -0,0 +1,31 @@
+package com.java.design.proxy.ws;
+
+public class ProxyCat implements Cat {
+
+ private BlackCat blackCat;
+
+ public ProxyCat(){
+ if (blackCat == null) {
+ blackCat = new BlackCat();
+ }
+ }
+
+ @Override
+ public void eat() {
+
+ beforeEat();
+ blackCat.eat();
+ afterEat();
+
+ }
+
+ private void afterEat() {
+ System.out.println("afterEat 散步。。。。");
+ }
+
+ private void beforeEat() {
+ System.out.println("beforeEat 起床。。。。");
+ }
+
+
+}
diff --git a/java-des/src/com/java/design/responsibility/AddMoneyRequest.java b/src/main/java/com/java/design/responsibility/AddMoneyRequest.java
similarity index 93%
rename from java-des/src/com/java/design/responsibility/AddMoneyRequest.java
rename to src/main/java/com/java/design/responsibility/AddMoneyRequest.java
index 6d371d4..67f9395 100644
--- a/java-des/src/com/java/design/responsibility/AddMoneyRequest.java
+++ b/src/main/java/com/java/design/responsibility/AddMoneyRequest.java
@@ -1,11 +1,11 @@
-package com.java.design.responsibility;
-
-/**
- * 加薪申请
- *
- * @author Administrator
- *
- */
-public class AddMoneyRequest implements Request {
-
-}
+package com.java.design.responsibility;
+
+/**
+ * 加薪申请
+ *
+ * @author Administrator
+ *
+ */
+public class AddMoneyRequest implements Request {
+
+}
diff --git a/java-des/src/com/java/design/responsibility/DimissionRequest.java b/src/main/java/com/java/design/responsibility/DimissionRequest.java
similarity index 93%
rename from java-des/src/com/java/design/responsibility/DimissionRequest.java
rename to src/main/java/com/java/design/responsibility/DimissionRequest.java
index 4b1ca93..8753611 100644
--- a/java-des/src/com/java/design/responsibility/DimissionRequest.java
+++ b/src/main/java/com/java/design/responsibility/DimissionRequest.java
@@ -1,11 +1,11 @@
-package com.java.design.responsibility;
-
-/**
- * 离职申请
- *
- * @author Administrator
- *
- */
-public class DimissionRequest implements Request {
-
-}
+package com.java.design.responsibility;
+
+/**
+ * 离职申请
+ *
+ * @author Administrator
+ *
+ */
+public class DimissionRequest implements Request {
+
+}
diff --git a/java-des/src/com/java/design/responsibility/HRRequestHandle.java b/src/main/java/com/java/design/responsibility/HRRequestHandle.java
similarity index 95%
rename from java-des/src/com/java/design/responsibility/HRRequestHandle.java
rename to src/main/java/com/java/design/responsibility/HRRequestHandle.java
index f944a03..9194cb0 100644
--- a/java-des/src/com/java/design/responsibility/HRRequestHandle.java
+++ b/src/main/java/com/java/design/responsibility/HRRequestHandle.java
@@ -1,14 +1,14 @@
-package com.java.design.responsibility;
-
-public class HRRequestHandle implements RequestHandler {
-
- @Override
- public void handleRequest(Request request) {
-
- if (request instanceof DimissionRequest) {
- System.out.println("要离职 人事审批 ...");
- }
-
- System.out.println("请求完成 ...");
- }
-}
+package com.java.design.responsibility;
+
+public class HRRequestHandle implements RequestHandler {
+
+ @Override
+ public void handleRequest(Request request) {
+
+ if (request instanceof DimissionRequest) {
+ System.out.println("要离职 人事审批 ...");
+ }
+
+ System.out.println("请求完成 ...");
+ }
+}
diff --git a/java-des/src/com/java/design/responsibility/PMRequestHandle.java b/src/main/java/com/java/design/responsibility/PMRequestHandle.java
similarity index 95%
rename from java-des/src/com/java/design/responsibility/PMRequestHandle.java
rename to src/main/java/com/java/design/responsibility/PMRequestHandle.java
index 8427c46..ad8cdc1 100644
--- a/java-des/src/com/java/design/responsibility/PMRequestHandle.java
+++ b/src/main/java/com/java/design/responsibility/PMRequestHandle.java
@@ -1,24 +1,24 @@
-package com.java.design.responsibility;
-
-public class PMRequestHandle implements RequestHandler {
-
- RequestHandler requestHandler;
-
- public PMRequestHandle(RequestHandler requestHandler) {
-
- this.requestHandler = requestHandler;
- }
-
- @Override
- public void handleRequest(Request request) {
-
- if (request instanceof AddMoneyRequest) {
-
- System.out.println("要加薪,项目经理审批 ...");
- } else {
-
- requestHandler.handleRequest(request);
- }
-
- }
-}
+package com.java.design.responsibility;
+
+public class PMRequestHandle implements RequestHandler {
+
+ RequestHandler requestHandler;
+
+ public PMRequestHandle(RequestHandler requestHandler) {
+
+ this.requestHandler = requestHandler;
+ }
+
+ @Override
+ public void handleRequest(Request request) {
+
+ if (request instanceof AddMoneyRequest) {
+
+ System.out.println("要加薪,项目经理审批 ...");
+ } else {
+
+ requestHandler.handleRequest(request);
+ }
+
+ }
+}
diff --git a/java-des/src/com/java/design/responsibility/Request.java b/src/main/java/com/java/design/responsibility/Request.java
similarity index 93%
rename from java-des/src/com/java/design/responsibility/Request.java
rename to src/main/java/com/java/design/responsibility/Request.java
index 9d34f07..d2588ae 100644
--- a/java-des/src/com/java/design/responsibility/Request.java
+++ b/src/main/java/com/java/design/responsibility/Request.java
@@ -1,5 +1,5 @@
-package com.java.design.responsibility;
-
-public interface Request {
-
-}
+package com.java.design.responsibility;
+
+public interface Request {
+
+}
diff --git a/java-des/src/com/java/design/responsibility/RequestHandler.java b/src/main/java/com/java/design/responsibility/RequestHandler.java
similarity index 95%
rename from java-des/src/com/java/design/responsibility/RequestHandler.java
rename to src/main/java/com/java/design/responsibility/RequestHandler.java
index 7b5abe0..ec4c138 100644
--- a/java-des/src/com/java/design/responsibility/RequestHandler.java
+++ b/src/main/java/com/java/design/responsibility/RequestHandler.java
@@ -1,6 +1,6 @@
-package com.java.design.responsibility;
-
-public interface RequestHandler {
-
- void handleRequest(Request request);
-}
+package com.java.design.responsibility;
+
+public interface RequestHandler {
+
+ void handleRequest(Request request);
+}
diff --git a/java-des/src/com/java/design/responsibility/ResponsibilityPattern.java b/src/main/java/com/java/design/responsibility/ResponsibilityPattern.java
similarity index 97%
rename from java-des/src/com/java/design/responsibility/ResponsibilityPattern.java
rename to src/main/java/com/java/design/responsibility/ResponsibilityPattern.java
index 4f6ed4e..a390616 100644
--- a/java-des/src/com/java/design/responsibility/ResponsibilityPattern.java
+++ b/src/main/java/com/java/design/responsibility/ResponsibilityPattern.java
@@ -1,31 +1,31 @@
-package com.java.design.responsibility;
-
-/**
- * 责任链模式 -----> 是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,
- * 直到链上的某一个对象决定处理此请求
- * 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任
- * Tomcat中的Filter就是使用了责任链模式
- * 创建一个Filter除了要在web.xml文件中做相应配置外,还需要实现javax.servlet.Filter接口。
- *
- * @author Administrator
- *
- */
-public class ResponsibilityPattern {
-
- public static void main(String[] args) {
-
- RequestHandler hr = new HRRequestHandle();
- RequestHandler pm = new PMRequestHandle(hr);
-
- Request request = new DimissionRequest();
- hr.handleRequest(request);
-
- request = new AddMoneyRequest();
- pm.handleRequest(request);
-
- request = new DimissionRequest();
- pm.handleRequest(request);
-
- }
-
-}
+package com.java.design.responsibility;
+
+/**
+ * 责任链模式 -----> 是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,
+ * 直到链上的某一个对象决定处理此请求
+ * 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任
+ * Tomcat中的Filter就是使用了责任链模式
+ * 创建一个Filter除了要在web.xml文件中做相应配置外,还需要实现javax.servlet.Filter接口。
+ *
+ * @author Administrator
+ *
+ */
+public class ResponsibilityPattern {
+
+ public static void main(String[] args) {
+
+ RequestHandler hr = new HRRequestHandle();
+ RequestHandler pm = new PMRequestHandle(hr);
+
+ Request request = new DimissionRequest();
+ hr.handleRequest(request);
+
+ request = new AddMoneyRequest();
+ pm.handleRequest(request);
+
+ request = new DimissionRequest();
+ pm.handleRequest(request);
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/singleton/SingletonA.java b/src/main/java/com/java/design/singleton/SingletonA.java
similarity index 94%
rename from java-des/src/com/java/design/singleton/SingletonA.java
rename to src/main/java/com/java/design/singleton/SingletonA.java
index 8577c36..29a733b 100644
--- a/java-des/src/com/java/design/singleton/SingletonA.java
+++ b/src/main/java/com/java/design/singleton/SingletonA.java
@@ -1,18 +1,18 @@
-package com.java.design.singleton;
-
-/**
- * 单例模式的实现:饿汉式,线程安全 但效率比较低
- */
-public class SingletonA {
-
- private SingletonA() {
- }
-
- private static final SingletonA instance = new SingletonA();
-
- public static SingletonA getInstance() {
-
- return instance;
- }
-
-}
+package com.java.design.singleton;
+
+/**
+ * 单例模式的实现:饿汉式,线程安全 但效率比较低
+ */
+public class SingletonA {
+
+ private SingletonA() {
+ }
+
+ private static final SingletonA instance = new SingletonA();
+
+ public static SingletonA getInstance() {
+
+ return instance;
+ }
+
+}
diff --git a/java-des/src/com/java/design/singleton/SingletonB.java b/src/main/java/com/java/design/singleton/SingletonB.java
similarity index 96%
rename from java-des/src/com/java/design/singleton/SingletonB.java
rename to src/main/java/com/java/design/singleton/SingletonB.java
index 308f3ae..6b11cf1 100644
--- a/java-des/src/com/java/design/singleton/SingletonB.java
+++ b/src/main/java/com/java/design/singleton/SingletonB.java
@@ -1,25 +1,25 @@
-package com.java.design.singleton;
-
-/**
- * 单例模式的实现:饱汉式,非线程安全
- */
-public class SingletonB {
-
- // 防止实例化
- private SingletonB() {
-
- }
-
- // 定义一个SingletonTest类型的变量(不初始化,注意这里没有使用final关键字)
- private static SingletonB instance;
-
- // 定义一个静态的方法(调用时再初始化SingletonTest,但是多线程访问时,可能造成重复初始化问题)
- // 加上 synchronized 保证线程安全
- public static synchronized SingletonB getInstance() {
-
- if (instance == null) {
- instance = new SingletonB();
- }
- return instance;
- }
-}
+package com.java.design.singleton;
+
+/**
+ * 单例模式的实现:饱汉式,非线程安全
+ */
+public class SingletonB {
+
+ // 防止实例化
+ private SingletonB() {
+
+ }
+
+ // 定义一个SingletonTest类型的变量(不初始化,注意这里没有使用final关键字)
+ private static SingletonB instance;
+
+ // 定义一个静态的方法(调用时再初始化SingletonTest,但是多线程访问时,可能造成重复初始化问题)
+ // 加上 synchronized 保证线程安全
+ public static synchronized SingletonB getInstance() {
+
+ if (instance == null) {
+ instance = new SingletonB();
+ }
+ return instance;
+ }
+}
diff --git a/java-des/src/com/java/design/singleton/SingletonC.java b/src/main/java/com/java/design/singleton/SingletonC.java
similarity index 96%
rename from java-des/src/com/java/design/singleton/SingletonC.java
rename to src/main/java/com/java/design/singleton/SingletonC.java
index 4c06682..ef200d2 100644
--- a/java-des/src/com/java/design/singleton/SingletonC.java
+++ b/src/main/java/com/java/design/singleton/SingletonC.java
@@ -1,26 +1,26 @@
-package com.java.design.singleton;
-
-/**
- * 单例模式最优方案 线程安全 并且效率高
- */
-public class SingletonC {
-
- private SingletonC() {
-
- }
-
- // 定义一个静态私有变量(不初始化,不使用final关键字,使用volatile保证了多线程访问时instance变量的可见性,避免了instance初始化时其他变量属性还没赋值完时,被另外线程调用)
- private static volatile SingletonC instance;
-
- public static SingletonC getInstance() {
- if (instance == null) {
- // 同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
- synchronized (SingletonC.class) {
- if (instance == null) {
- instance = new SingletonC();
- }
- }
- }
- return instance;
- }
-}
+package com.java.design.singleton;
+
+/**
+ * 单例模式最优方案 线程安全 并且效率高
+ */
+public class SingletonC {
+
+ private SingletonC() {
+
+ }
+
+ // 定义一个静态私有变量(不初始化,不使用final关键字,使用volatile保证了多线程访问时instance变量的可见性,避免了instance初始化时其他变量属性还没赋值完时,被另外线程调用)
+ private static volatile SingletonC instance;
+
+ public static SingletonC getInstance() {
+ if (instance == null) {
+ // 同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
+ synchronized (SingletonC.class) {
+ if (instance == null) {
+ instance = new SingletonC();
+ }
+ }
+ }
+ return instance;
+ }
+}
diff --git a/java-des/src/com/java/design/singleton/SingletonD.java b/src/main/java/com/java/design/singleton/SingletonD.java
similarity index 93%
rename from java-des/src/com/java/design/singleton/SingletonD.java
rename to src/main/java/com/java/design/singleton/SingletonD.java
index 03c069e..a6d03f3 100644
--- a/java-des/src/com/java/design/singleton/SingletonD.java
+++ b/src/main/java/com/java/design/singleton/SingletonD.java
@@ -1,24 +1,24 @@
-package com.java.design.singleton;
-
-/**
- * 静态内部类
- *
- * @author Administrator
- *
- */
-public class SingletonD {
-
- private static class SingletonHolder {
-
- private static final SingletonD INSTANCE = new SingletonD();
- }
-
- private SingletonD() {
-
- }
-
- public static SingletonD getInstance() {
-
- return SingletonHolder.INSTANCE;
- }
-}
+package com.java.design.singleton;
+
+/**
+ * 静态内部类
+ *
+ * @author Administrator
+ *
+ */
+public class SingletonD {
+
+ private static class SingletonHolder {
+
+ private static final SingletonD INSTANCE = new SingletonD();
+ }
+
+ private SingletonD() {
+
+ }
+
+ public static SingletonD getInstance() {
+
+ return SingletonHolder.INSTANCE;
+ }
+}
diff --git a/java-des/src/com/java/design/state/Context.java b/src/main/java/com/java/design/state/Context.java
similarity index 92%
rename from java-des/src/com/java/design/state/Context.java
rename to src/main/java/com/java/design/state/Context.java
index a444502..46c8169 100644
--- a/java-des/src/com/java/design/state/Context.java
+++ b/src/main/java/com/java/design/state/Context.java
@@ -1,25 +1,25 @@
-package com.java.design.state;
-
-/**
- * 定义状态
- *
- * @author Administrator
- *
- */
-public class Context {
-
- private State state;
-
- public State getState() {
- return state;
- }
-
- public void setState(State state) {
- this.state = state;
- }
-
- public String stateMessage() {
- return state.getState();
- }
-
-}
+package com.java.design.state;
+
+/**
+ * 定义状态
+ *
+ * @author Administrator
+ *
+ */
+public class Context {
+
+ private State state;
+
+ public State getState() {
+ return state;
+ }
+
+ public void setState(State state) {
+ this.state = state;
+ }
+
+ public String stateMessage() {
+ return state.getState();
+ }
+
+}
diff --git a/java-des/src/com/java/design/state/Rain.java b/src/main/java/com/java/design/state/Rain.java
similarity index 92%
rename from java-des/src/com/java/design/state/Rain.java
rename to src/main/java/com/java/design/state/Rain.java
index b7a303d..0bcffcd 100644
--- a/java-des/src/com/java/design/state/Rain.java
+++ b/src/main/java/com/java/design/state/Rain.java
@@ -1,10 +1,10 @@
-package com.java.design.state;
-
-public class Rain implements State {
-
- @Override
- public String getState() {
-
- return "Rain";
- }
-}
+package com.java.design.state;
+
+public class Rain implements State {
+
+ @Override
+ public String getState() {
+
+ return "Rain";
+ }
+}
diff --git a/java-des/src/com/java/design/state/State.java b/src/main/java/com/java/design/state/State.java
similarity index 91%
rename from java-des/src/com/java/design/state/State.java
rename to src/main/java/com/java/design/state/State.java
index a192153..012575b 100644
--- a/java-des/src/com/java/design/state/State.java
+++ b/src/main/java/com/java/design/state/State.java
@@ -1,17 +1,17 @@
-package com.java.design.state;
-
-/**
- * 状态接口
- *
- * @author Administrator
- *
- */
-public interface State {
-
- /**
- * 获取状态
- *
- * @return
- */
- String getState();
-}
+package com.java.design.state;
+
+/**
+ * 状态接口
+ *
+ * @author Administrator
+ *
+ */
+public interface State {
+
+ /**
+ * 获取状态
+ *
+ * @return
+ */
+ String getState();
+}
diff --git a/java-des/src/com/java/design/state/StatePattern.java b/src/main/java/com/java/design/state/StatePattern.java
similarity index 95%
rename from java-des/src/com/java/design/state/StatePattern.java
rename to src/main/java/com/java/design/state/StatePattern.java
index 34f8c43..4ef0410 100644
--- a/java-des/src/com/java/design/state/StatePattern.java
+++ b/src/main/java/com/java/design/state/StatePattern.java
@@ -1,25 +1,25 @@
-package com.java.design.state;
-
-/**
- * 状态模式 -----> 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类
- *
- * @author Administrator
- *
- */
-public class StatePattern {
-
- public static void main(String[] args) {
-
- Context context = new Context();
- context.setState(new SunShine());
- String messageSun = context.stateMessage();
- System.out.println(messageSun);
-
- System.out.println("----------------");
-
- context.setState(new Rain());
- String messageRain = context.stateMessage();
- System.out.println(messageRain);
- }
-
-}
+package com.java.design.state;
+
+/**
+ * 状态模式 -----> 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类
+ *
+ * @author Administrator
+ *
+ */
+public class StatePattern {
+
+ public static void main(String[] args) {
+
+ Context context = new Context();
+ context.setState(new SunShine());
+ String messageSun = context.stateMessage();
+ System.out.println(messageSun);
+
+ System.out.println("----------------");
+
+ context.setState(new Rain());
+ String messageRain = context.stateMessage();
+ System.out.println(messageRain);
+ }
+
+}
diff --git a/java-des/src/com/java/design/state/SunShine.java b/src/main/java/com/java/design/state/SunShine.java
similarity index 93%
rename from java-des/src/com/java/design/state/SunShine.java
rename to src/main/java/com/java/design/state/SunShine.java
index de91d58..39c889b 100644
--- a/java-des/src/com/java/design/state/SunShine.java
+++ b/src/main/java/com/java/design/state/SunShine.java
@@ -1,10 +1,10 @@
-package com.java.design.state;
-
-public class SunShine implements State {
-
- @Override
- public String getState() {
-
- return "SunShine";
- }
-}
+package com.java.design.state;
+
+public class SunShine implements State {
+
+ @Override
+ public String getState() {
+
+ return "SunShine";
+ }
+}
diff --git a/java-des/src/com/java/design/strategy/CalculateStrategy.java b/src/main/java/com/java/design/strategy/CalculateStrategy.java
similarity index 92%
rename from java-des/src/com/java/design/strategy/CalculateStrategy.java
rename to src/main/java/com/java/design/strategy/CalculateStrategy.java
index c14a379..daee019 100644
--- a/java-des/src/com/java/design/strategy/CalculateStrategy.java
+++ b/src/main/java/com/java/design/strategy/CalculateStrategy.java
@@ -1,13 +1,13 @@
-package com.java.design.strategy;
-
-/**
- * 计算接口
- *
- * @author Administrator
- *
- */
-public interface CalculateStrategy {
-
- void calculatePrice(Integer km);
-
-}
+package com.java.design.strategy;
+
+/**
+ * 计算接口
+ *
+ * @author Administrator
+ *
+ */
+public interface CalculateStrategy {
+
+ void calculatePrice(Integer km);
+
+}
diff --git a/java-des/src/com/java/design/strategy/Strategy.java b/src/main/java/com/java/design/strategy/Strategy.java
similarity index 95%
rename from java-des/src/com/java/design/strategy/Strategy.java
rename to src/main/java/com/java/design/strategy/Strategy.java
index dba393c..bc46296 100644
--- a/java-des/src/com/java/design/strategy/Strategy.java
+++ b/src/main/java/com/java/design/strategy/Strategy.java
@@ -1,43 +1,43 @@
-package com.java.design.strategy;
-
-/**
- * 公交计算策略
- *
- * @author Administrator
- *
- */
-public class Strategy implements CalculateStrategy {
-
- private String name;
-
- public Strategy(String name) {
- this.name = name;
- }
-
- @Override
- public void calculatePrice(Integer km) {
-
- Integer priceTot = 0;
-
- if (name == "公交") {
- int extraTotal = km - 10;
- int extraFactor = extraTotal / 5;
- int fraction = extraTotal % 5;
- int price = 1 + extraFactor * 1;
- priceTot = fraction > 0 ? ++price : price;
- } else if (name == "地铁") {
- if (km <= 6) {
- priceTot = 3;
- } else if (km > 6 && km < 12) {
- priceTot = 4;
- } else if (km < 22 && km > 12) {
- priceTot = 5;
- } else if (km < 32 && km > 22) {
- priceTot = 6;
- } else {
- priceTot = 7;
- }
- }
- System.out.println(name + "坐" + km + "公里需要" + priceTot + "元 ...");
- }
-}
+package com.java.design.strategy;
+
+/**
+ * 公交计算策略
+ *
+ * @author Administrator
+ *
+ */
+public class Strategy implements CalculateStrategy {
+
+ private String name;
+
+ public Strategy(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public void calculatePrice(Integer km) {
+
+ Integer priceTot = 0;
+
+ if (name == "公交") {
+ int extraTotal = km - 10;
+ int extraFactor = extraTotal / 5;
+ int fraction = extraTotal % 5;
+ int price = 1 + extraFactor * 1;
+ priceTot = fraction > 0 ? ++price : price;
+ } else if (name == "地铁") {
+ if (km <= 6) {
+ priceTot = 3;
+ } else if (km > 6 && km < 12) {
+ priceTot = 4;
+ } else if (km < 22 && km > 12) {
+ priceTot = 5;
+ } else if (km < 32 && km > 22) {
+ priceTot = 6;
+ } else {
+ priceTot = 7;
+ }
+ }
+ System.out.println(name + "坐" + km + "公里需要" + priceTot + "元 ...");
+ }
+}
diff --git a/java-des/src/com/java/design/strategy/StrategyPattern.java b/src/main/java/com/java/design/strategy/StrategyPattern.java
similarity index 96%
rename from java-des/src/com/java/design/strategy/StrategyPattern.java
rename to src/main/java/com/java/design/strategy/StrategyPattern.java
index 4a7c539..8d5c100 100644
--- a/java-des/src/com/java/design/strategy/StrategyPattern.java
+++ b/src/main/java/com/java/design/strategy/StrategyPattern.java
@@ -1,21 +1,21 @@
-package com.java.design.strategy;
-
-/**
- * 策略模式 -----> 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。
- * 策略模式使得算法可以在不影响到客户端的情况下发生变化
- *
- * @author Administrator
- *
- */
-public class StrategyPattern {
-
- public static void main(String[] args) {
-
- TranficCalculator tranficCalculator = new TranficCalculator();
- // 设置计算策略
- // 计算价格
- tranficCalculator.calculatePrice(new Strategy("地铁"), 10);
-
- }
-
-}
+package com.java.design.strategy;
+
+/**
+ * 策略模式 -----> 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。
+ * 策略模式使得算法可以在不影响到客户端的情况下发生变化
+ *
+ * @author Administrator
+ *
+ */
+public class StrategyPattern {
+
+ public static void main(String[] args) {
+
+ TranficCalculator tranficCalculator = new TranficCalculator();
+ // 设置计算策略
+ // 计算价格
+ tranficCalculator.calculatePrice(new Strategy("地铁"), 10);
+
+ }
+
+}
diff --git a/java-des/src/com/java/design/strategy/TranficCalculator.java b/src/main/java/com/java/design/strategy/TranficCalculator.java
similarity index 95%
rename from java-des/src/com/java/design/strategy/TranficCalculator.java
rename to src/main/java/com/java/design/strategy/TranficCalculator.java
index bd07337..bb2924e 100644
--- a/java-des/src/com/java/design/strategy/TranficCalculator.java
+++ b/src/main/java/com/java/design/strategy/TranficCalculator.java
@@ -1,13 +1,13 @@
-package com.java.design.strategy;
-
-public class TranficCalculator {
-
- CalculateStrategy calculateStrategy;
-
- public void calculatePrice(CalculateStrategy calculateStrategy, Integer km) {
-
- this.calculateStrategy = calculateStrategy;
- calculateStrategy.calculatePrice(km);
- }
-
-}
+package com.java.design.strategy;
+
+public class TranficCalculator {
+
+ CalculateStrategy calculateStrategy;
+
+ public void calculatePrice(CalculateStrategy calculateStrategy, Integer km) {
+
+ this.calculateStrategy = calculateStrategy;
+ calculateStrategy.calculatePrice(km);
+ }
+
+}
diff --git a/java-des/src/com/java/design/template/CarA.java b/src/main/java/com/java/design/template/CarA.java
similarity index 93%
rename from java-des/src/com/java/design/template/CarA.java
rename to src/main/java/com/java/design/template/CarA.java
index 2241769..cf91003 100644
--- a/java-des/src/com/java/design/template/CarA.java
+++ b/src/main/java/com/java/design/template/CarA.java
@@ -1,16 +1,16 @@
-package com.java.design.template;
-
-public class CarA extends CarModel {
-
- @Override
- protected void start() {
-
- System.out.println("CarA start ...");
- }
-
- @Override
- protected void stop() {
-
- System.out.println("CarA stop ...");
- }
-}
+package com.java.design.template;
+
+public class CarA extends CarModel {
+
+ @Override
+ protected void start() {
+
+ System.out.println("CarA start ...");
+ }
+
+ @Override
+ protected void stop() {
+
+ System.out.println("CarA stop ...");
+ }
+}
diff --git a/java-des/src/com/java/design/template/CarB.java b/src/main/java/com/java/design/template/CarB.java
similarity index 93%
rename from java-des/src/com/java/design/template/CarB.java
rename to src/main/java/com/java/design/template/CarB.java
index 43d058a..4bf37a1 100644
--- a/java-des/src/com/java/design/template/CarB.java
+++ b/src/main/java/com/java/design/template/CarB.java
@@ -1,16 +1,16 @@
-package com.java.design.template;
-
-public class CarB extends CarModel {
-
- @Override
- protected void start() {
-
- System.out.println("CarB start ...");
- }
-
- @Override
- protected void stop() {
-
- System.out.println("CarB stop ...");
- }
-}
+package com.java.design.template;
+
+public class CarB extends CarModel {
+
+ @Override
+ protected void start() {
+
+ System.out.println("CarB start ...");
+ }
+
+ @Override
+ protected void stop() {
+
+ System.out.println("CarB stop ...");
+ }
+}
diff --git a/java-des/src/com/java/design/template/CarModel.java b/src/main/java/com/java/design/template/CarModel.java
similarity index 92%
rename from java-des/src/com/java/design/template/CarModel.java
rename to src/main/java/com/java/design/template/CarModel.java
index 883ef54..e22d548 100644
--- a/java-des/src/com/java/design/template/CarModel.java
+++ b/src/main/java/com/java/design/template/CarModel.java
@@ -1,15 +1,15 @@
-package com.java.design.template;
-
-public abstract class CarModel {
-
- protected abstract void start();
-
- protected abstract void stop();
-
- final public void excet() {
-
- start();
- stop();
- }
-
-}
+package com.java.design.template;
+
+public abstract class CarModel {
+
+ protected abstract void start();
+
+ protected abstract void stop();
+
+ final public void excet() {
+
+ start();
+ stop();
+ }
+
+}
diff --git a/java-des/src/com/java/design/template/TemplatePattern.java b/src/main/java/com/java/design/template/TemplatePattern.java
similarity index 97%
rename from java-des/src/com/java/design/template/TemplatePattern.java
rename to src/main/java/com/java/design/template/TemplatePattern.java
index e9ee842..0fadacd 100644
--- a/java-des/src/com/java/design/template/TemplatePattern.java
+++ b/src/main/java/com/java/design/template/TemplatePattern.java
@@ -1,24 +1,24 @@
-package com.java.design.template;
-
-/**
- * 模板模式 -----> 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
- * 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。通俗的说的就是有很多相同的步骤的
- * 在某一些地方可能有一些差别适合于这种模式,如大话设计模式中说到的考试场景中
- * 每个人的试卷都是一样的,只有答案不一样。这种场景就适合于模板方法模式。我这次自己写的是一个汽车启动的过程
- * 每一种汽车启动的过程都基本是一样的流程,无非是这一过程中存在一些细小差别。
- *
- * @author Administrator
- *
- */
-public class TemplatePattern {
-
- public static void main(String[] args) {
-
- CarModel carA = new CarA();
- carA.excet();
-
- CarModel carB = new CarB();
- carB.excet();
- }
-
-}
+package com.java.design.template;
+
+/**
+ * 模板模式 -----> 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
+ * 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。通俗的说的就是有很多相同的步骤的
+ * 在某一些地方可能有一些差别适合于这种模式,如大话设计模式中说到的考试场景中
+ * 每个人的试卷都是一样的,只有答案不一样。这种场景就适合于模板方法模式。我这次自己写的是一个汽车启动的过程
+ * 每一种汽车启动的过程都基本是一样的流程,无非是这一过程中存在一些细小差别。
+ *
+ * @author Administrator
+ *
+ */
+public class TemplatePattern {
+
+ public static void main(String[] args) {
+
+ CarModel carA = new CarA();
+ carA.excet();
+
+ CarModel carB = new CarB();
+ carB.excet();
+ }
+
+}
diff --git a/java-des/src/com/java/design/visitor/BodyA.java b/src/main/java/com/java/design/visitor/BodyA.java
similarity index 93%
rename from java-des/src/com/java/design/visitor/BodyA.java
rename to src/main/java/com/java/design/visitor/BodyA.java
index 6942306..de21102 100644
--- a/java-des/src/com/java/design/visitor/BodyA.java
+++ b/src/main/java/com/java/design/visitor/BodyA.java
@@ -1,14 +1,14 @@
-package com.java.design.visitor;
-
-public class BodyA {
-
- public void seeABody() {
-
- System.out.println("I see A の Body ...");
- }
-
- public void seeBBody(BodyB b) {
- b.seeBBody(this);
- }
-
-}
+package com.java.design.visitor;
+
+public class BodyA {
+
+ public void seeABody() {
+
+ System.out.println("I see A の Body ...");
+ }
+
+ public void seeBBody(BodyB b) {
+ b.seeBBody(this);
+ }
+
+}
diff --git a/java-des/src/com/java/design/visitor/BodyB.java b/src/main/java/com/java/design/visitor/BodyB.java
similarity index 94%
rename from java-des/src/com/java/design/visitor/BodyB.java
rename to src/main/java/com/java/design/visitor/BodyB.java
index 515ec16..08b80b4 100644
--- a/java-des/src/com/java/design/visitor/BodyB.java
+++ b/src/main/java/com/java/design/visitor/BodyB.java
@@ -1,13 +1,13 @@
-package com.java.design.visitor;
-
-public class BodyB {
-
- public void seeABody(BodyA a) {
- a.seeABody();
- }
-
- public void seeBBody(BodyA a) {
- System.out.println("Want to see B の Body ? hehe ...");
- a.seeABody();
- }
-}
+package com.java.design.visitor;
+
+public class BodyB {
+
+ public void seeABody(BodyA a) {
+ a.seeABody();
+ }
+
+ public void seeBBody(BodyA a) {
+ System.out.println("Want to see B の Body ? hehe ...");
+ a.seeABody();
+ }
+}
diff --git a/java-des/src/com/java/design/visitor/VisitorPattern.java b/src/main/java/com/java/design/visitor/VisitorPattern.java
similarity index 95%
rename from java-des/src/com/java/design/visitor/VisitorPattern.java
rename to src/main/java/com/java/design/visitor/VisitorPattern.java
index d3eb0d4..1918297 100644
--- a/java-des/src/com/java/design/visitor/VisitorPattern.java
+++ b/src/main/java/com/java/design/visitor/VisitorPattern.java
@@ -1,18 +1,18 @@
-package com.java.design.visitor;
-
-/**
- * 访问者模式 -----> 表示一个作用于其对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作
- *
- * @author Administrator
- *
- */
-public class VisitorPattern {
-
- public static void main(String[] args) {
-
- BodyA bodyA = new BodyA();
- bodyA.seeABody();
- bodyA.seeBBody(new BodyB());
- }
-
-}
+package com.java.design.visitor;
+
+/**
+ * 访问者模式 -----> 表示一个作用于其对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作
+ *
+ * @author Administrator
+ *
+ */
+public class VisitorPattern {
+
+ public static void main(String[] args) {
+
+ BodyA bodyA = new BodyA();
+ bodyA.seeABody();
+ bodyA.seeBBody(new BodyB());
+ }
+
+}