From 846da076c6cf4c844a3ee06479f6088c7acedbe1 Mon Sep 17 00:00:00 2001 From: wanshi11 <277780875@qq.com> Date: Mon, 18 Jan 2021 21:45:19 +0800 Subject: [PATCH 1/3] 1 --- .idea/DesignPatterns-Java.iml | 11 + .idea/compiler.xml | 15 ++ .idea/encodings.xml | 6 + .idea/misc.xml | 14 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .idea/workspace.xml | 243 ++++++++++++++++++ .../java/design/singleton/EnumSingleton.java | 17 -- .../main/java}/com/java/design/README.md | 0 .../AbstractFactoryPattern.java | 62 ++--- .../abstractfactory/BlackAnimalFactory.java | 28 +- .../java/design/abstractfactory/BlackCat.java | 20 +- .../java/design/abstractfactory/BlackDog.java | 20 +- .../abstractfactory/IAnimalFactory.java | 18 +- .../com/java/design/abstractfactory/ICat.java | 14 +- .../com/java/design/abstractfactory/IDog.java | 12 +- .../abstractfactory/WhiteAnimalFactory.java | 28 +- .../java/design/abstractfactory/WhiteCat.java | 22 +- .../java/design/abstractfactory/WhiteDog.java | 20 +- .../com/java/design/adapter/Adaptee.java | 16 +- .../com/java/design/adapter/Adapter.java | 40 +-- .../java/design/adapter/AdapterPattern.java | 44 ++-- .../java}/com/java/design/adapter/Target.java | 16 +- .../com/java/design/bridge/BlackShoe.java | 20 +- .../com/java/design/bridge/BridgePattern.java | 56 ++-- .../com/java/design/bridge/Clothing.java | 14 +- .../java}/com/java/design/bridge/Lady.java | 16 +- .../java}/com/java/design/bridge/Man.java | 16 +- .../java}/com/java/design/bridge/Person.java | 50 ++-- .../com/java/design/bridge/WhiteShoe.java | 20 +- .../com/java/design/build/BuilderPattern.java | 40 +-- .../main/java}/com/java/design/build/Man.java | 10 +- .../com/java/design/build/ManBuilder.java | 68 ++--- .../java}/com/java/design/build/Person.java | 76 +++--- .../com/java/design/build/PersonBuilder.java | 24 +- .../com/java/design/build/PersonDirector.java | 28 +- .../java/design/command/AbstractAction.java | 12 +- .../java/design/command/AbstractReceiver.java | 12 +- .../com/java/design/command/ActionA.java | 36 +-- .../com/java/design/command/ActionB.java | 36 +-- .../java/design/command/CommandPattern.java | 64 ++--- .../com/java/design/command/Invoker.java | 32 +-- .../com/java/design/command/ReceiverA.java | 22 +- .../com/java/design/command/ReceiverB.java | 20 +- .../com/java/design/composite/Component.java | 32 +-- .../com/java/design/composite/Composite.java | 74 +++--- .../design/composite/CompositePattern.java | 62 ++--- .../java}/com/java/design/composite/Leaf.java | 60 ++--- .../com/java/design/decorator/Decorator.java | 30 +-- .../design/decorator/DecoratorPattern.java | 50 ++-- .../java}/com/java/design/decorator/Man.java | 20 +- .../java/design/decorator/ManDecoratorA.java | 30 +-- .../java/design/decorator/ManDecoratorB.java | 22 +- .../com/java/design/decorator/Person.java | 14 +- .../java}/com/java/design/facade/Facade.java | 72 +++--- .../com/java/design/facade/FacadePattern.java | 64 ++--- .../com/java/design/facade/ServiceA.java | 14 +- .../com/java/design/facade/ServiceAImpl.java | 20 +- .../com/java/design/facade/ServiceB.java | 12 +- .../com/java/design/facade/ServiceBImpl.java | 20 +- .../com/java/design/facade/ServiceC.java | 12 +- .../com/java/design/facade/ServiceCImpl.java | 20 +- .../factorymethod/FactoryMethodPattern.java | 40 +-- .../design/factorymethod/IWorkFactory.java | 14 +- .../design/factorymethod/StudentWork.java | 22 +- .../factorymethod/StudentWorkFactory.java | 18 +- .../design/factorymethod/TeacherWork.java | 20 +- .../factorymethod/TeacherWorkFactory.java | 18 +- .../com/java/design/factorymethod/Work.java | 14 +- .../com/java/design/flyweight/FlyWeight.java | 14 +- .../design/flyweight/FlyWeightFactory.java | 56 ++-- .../java/design/flyweight/FlyWeightImpl.java | 20 +- .../design/flyweight/FlyweightPattern.java | 64 ++--- .../design/interpreter/AdvanceExpression.java | 20 +- .../com/java/design/interpreter/Context.java | 56 ++-- .../java/design/interpreter/Expression.java | 12 +- .../interpreter/InterpreterPattern.java | 50 ++-- .../design/interpreter/SimpleExpression.java | 20 +- .../com/java/design/iterator/Iterator.java | 24 +- .../java/design/iterator/IteratorImpl.java | 72 +++--- .../java/design/iterator/IteratorPattern.java | 70 ++--- .../java}/com/java/design/iterator/List.java | 24 +- .../com/java/design/iterator/ListImpl.java | 78 +++--- .../com/java/design/mediator/Colleague.java | 30 +-- .../com/java/design/mediator/ColleagueA.java | 40 +-- .../com/java/design/mediator/ColleagueB.java | 40 +-- .../design/mediator/ConcreteMediator.java | 84 +++--- .../com/java/design/mediator/Mediator.java | 26 +- .../java/design/mediator/MediatorPattern.java | 42 +-- .../com/java/design/memento/Caretaker.java | 42 +-- .../com/java/design/memento/Memento.java | 40 +-- .../java/design/memento/MementoPattern.java | 58 ++--- .../com/java/design/memento/Originator.java | 58 ++--- .../com/java/design/observer/Observer.java | 24 +- .../java/design/observer/ObserverPattern.java | 64 ++--- .../java/design/observer/ObserverServer.java | 100 +++---- .../java/design/observer/Observerable.java | 62 ++--- .../java}/com/java/design/observer/User.java | 46 ++-- .../design/prototype/ConcreatePrototype.java | 18 +- .../com/java/design/prototype/Prototype.java | 38 +-- .../design/prototype/PrototypePattern.java | 40 +-- .../main/java}/com/java/design/proxy/Dog.java | 14 +- .../java}/com/java/design/proxy/DogImpl.java | 20 +- .../java}/com/java/design/proxy/DogProxy.java | 34 +-- .../com/java/design/proxy/ProxyPattern.java | 36 +-- .../responsibility/AddMoneyRequest.java | 22 +- .../responsibility/DimissionRequest.java | 22 +- .../responsibility/HRRequestHandle.java | 28 +- .../responsibility/PMRequestHandle.java | 48 ++-- .../java/design/responsibility/Request.java | 10 +- .../design/responsibility/RequestHandler.java | 12 +- .../responsibility/ResponsibilityPattern.java | 62 ++--- .../com/java/design/singleton/SingletonA.java | 36 +-- .../com/java/design/singleton/SingletonB.java | 50 ++-- .../com/java/design/singleton/SingletonC.java | 52 ++-- .../com/java/design/singleton/SingletonD.java | 48 ++-- .../java}/com/java/design/state/Context.java | 50 ++-- .../java}/com/java/design/state/Rain.java | 20 +- .../java}/com/java/design/state/State.java | 34 +-- .../com/java/design/state/StatePattern.java | 50 ++-- .../java}/com/java/design/state/SunShine.java | 20 +- .../design/strategy/CalculateStrategy.java | 26 +- .../com/java/design/strategy/Strategy.java | 86 +++---- .../java/design/strategy/StrategyPattern.java | 42 +-- .../design/strategy/TranficCalculator.java | 26 +- .../java}/com/java/design/template/CarA.java | 32 +-- .../java}/com/java/design/template/CarB.java | 32 +-- .../com/java/design/template/CarModel.java | 30 +-- .../java/design/template/TemplatePattern.java | 48 ++-- .../java}/com/java/design/visitor/BodyA.java | 28 +- .../java}/com/java/design/visitor/BodyB.java | 26 +- .../java/design/visitor/VisitorPattern.java | 36 +-- 132 files changed, 2462 insertions(+), 2176 deletions(-) create mode 100644 .idea/DesignPatterns-Java.iml create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml delete mode 100644 java-des/src/com/java/design/singleton/EnumSingleton.java rename {java-des/src => src/main/java}/com/java/design/README.md (100%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/AbstractFactoryPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/BlackAnimalFactory.java (94%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/BlackCat.java (94%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/BlackDog.java (94%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/IAnimalFactory.java (92%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/ICat.java (92%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/IDog.java (93%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/WhiteAnimalFactory.java (94%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/WhiteCat.java (93%) rename {java-des/src => src/main/java}/com/java/design/abstractfactory/WhiteDog.java (94%) rename {java-des/src => src/main/java}/com/java/design/adapter/Adaptee.java (94%) rename {java-des/src => src/main/java}/com/java/design/adapter/Adapter.java (94%) rename {java-des/src => src/main/java}/com/java/design/adapter/AdapterPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/adapter/Target.java (93%) rename {java-des/src => src/main/java}/com/java/design/bridge/BlackShoe.java (95%) rename {java-des/src => src/main/java}/com/java/design/bridge/BridgePattern.java (94%) rename {java-des/src => src/main/java}/com/java/design/bridge/Clothing.java (94%) rename {java-des/src => src/main/java}/com/java/design/bridge/Lady.java (93%) rename {java-des/src => src/main/java}/com/java/design/bridge/Man.java (93%) rename {java-des/src => src/main/java}/com/java/design/bridge/Person.java (93%) rename {java-des/src => src/main/java}/com/java/design/bridge/WhiteShoe.java (95%) rename {java-des/src => src/main/java}/com/java/design/build/BuilderPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/build/Man.java (93%) rename {java-des/src => src/main/java}/com/java/design/build/ManBuilder.java (92%) rename {java-des/src => src/main/java}/com/java/design/build/Person.java (93%) rename {java-des/src => src/main/java}/com/java/design/build/PersonBuilder.java (92%) rename {java-des/src => src/main/java}/com/java/design/build/PersonDirector.java (93%) rename {java-des/src => src/main/java}/com/java/design/command/AbstractAction.java (93%) rename {java-des/src => src/main/java}/com/java/design/command/AbstractReceiver.java (94%) rename {java-des/src => src/main/java}/com/java/design/command/ActionA.java (95%) rename {java-des/src => src/main/java}/com/java/design/command/ActionB.java (95%) rename {java-des/src => src/main/java}/com/java/design/command/CommandPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/command/Invoker.java (94%) rename {java-des/src => src/main/java}/com/java/design/command/ReceiverA.java (94%) rename {java-des/src => src/main/java}/com/java/design/command/ReceiverB.java (94%) rename {java-des/src => src/main/java}/com/java/design/composite/Component.java (94%) rename {java-des/src => src/main/java}/com/java/design/composite/Composite.java (95%) rename {java-des/src => src/main/java}/com/java/design/composite/CompositePattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/composite/Leaf.java (95%) rename {java-des/src => src/main/java}/com/java/design/decorator/Decorator.java (94%) rename {java-des/src => src/main/java}/com/java/design/decorator/DecoratorPattern.java (97%) rename {java-des/src => src/main/java}/com/java/design/decorator/Man.java (93%) rename {java-des/src => src/main/java}/com/java/design/decorator/ManDecoratorA.java (94%) rename {java-des/src => src/main/java}/com/java/design/decorator/ManDecoratorB.java (94%) rename {java-des/src => src/main/java}/com/java/design/decorator/Person.java (91%) rename {java-des/src => src/main/java}/com/java/design/facade/Facade.java (93%) rename {java-des/src => src/main/java}/com/java/design/facade/FacadePattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/facade/ServiceA.java (92%) rename {java-des/src => src/main/java}/com/java/design/facade/ServiceAImpl.java (94%) rename {java-des/src => src/main/java}/com/java/design/facade/ServiceB.java (93%) rename {java-des/src => src/main/java}/com/java/design/facade/ServiceBImpl.java (94%) rename {java-des/src => src/main/java}/com/java/design/facade/ServiceC.java (93%) rename {java-des/src => src/main/java}/com/java/design/facade/ServiceCImpl.java (94%) rename {java-des/src => src/main/java}/com/java/design/factorymethod/FactoryMethodPattern.java (95%) rename {java-des/src => src/main/java}/com/java/design/factorymethod/IWorkFactory.java (93%) rename {java-des/src => src/main/java}/com/java/design/factorymethod/StudentWork.java (94%) rename {java-des/src => src/main/java}/com/java/design/factorymethod/StudentWorkFactory.java (94%) rename {java-des/src => src/main/java}/com/java/design/factorymethod/TeacherWork.java (94%) rename {java-des/src => src/main/java}/com/java/design/factorymethod/TeacherWorkFactory.java (94%) rename {java-des/src => src/main/java}/com/java/design/factorymethod/Work.java (92%) rename {java-des/src => src/main/java}/com/java/design/flyweight/FlyWeight.java (93%) rename {java-des/src => src/main/java}/com/java/design/flyweight/FlyWeightFactory.java (94%) rename {java-des/src => src/main/java}/com/java/design/flyweight/FlyWeightImpl.java (94%) rename {java-des/src => src/main/java}/com/java/design/flyweight/FlyweightPattern.java (97%) rename {java-des/src => src/main/java}/com/java/design/interpreter/AdvanceExpression.java (94%) rename {java-des/src => src/main/java}/com/java/design/interpreter/Context.java (94%) rename {java-des/src => src/main/java}/com/java/design/interpreter/Expression.java (94%) rename {java-des/src => src/main/java}/com/java/design/interpreter/InterpreterPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/interpreter/SimpleExpression.java (94%) rename {java-des/src => src/main/java}/com/java/design/iterator/Iterator.java (91%) rename {java-des/src => src/main/java}/com/java/design/iterator/IteratorImpl.java (93%) rename {java-des/src => src/main/java}/com/java/design/iterator/IteratorPattern.java (95%) rename {java-des/src => src/main/java}/com/java/design/iterator/List.java (92%) rename {java-des/src => src/main/java}/com/java/design/iterator/ListImpl.java (93%) rename {java-des/src => src/main/java}/com/java/design/mediator/Colleague.java (93%) rename {java-des/src => src/main/java}/com/java/design/mediator/ColleagueA.java (94%) rename {java-des/src => src/main/java}/com/java/design/mediator/ColleagueB.java (94%) rename {java-des/src => src/main/java}/com/java/design/mediator/ConcreteMediator.java (95%) rename {java-des/src => src/main/java}/com/java/design/mediator/Mediator.java (95%) rename {java-des/src => src/main/java}/com/java/design/mediator/MediatorPattern.java (97%) rename {java-des/src => src/main/java}/com/java/design/memento/Caretaker.java (92%) rename {java-des/src => src/main/java}/com/java/design/memento/Memento.java (92%) rename {java-des/src => src/main/java}/com/java/design/memento/MementoPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/memento/Originator.java (93%) rename {java-des/src => src/main/java}/com/java/design/observer/Observer.java (92%) rename {java-des/src => src/main/java}/com/java/design/observer/ObserverPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/observer/ObserverServer.java (94%) rename {java-des/src => src/main/java}/com/java/design/observer/Observerable.java (93%) rename {java-des/src => src/main/java}/com/java/design/observer/User.java (93%) rename {java-des/src => src/main/java}/com/java/design/prototype/ConcreatePrototype.java (94%) rename {java-des/src => src/main/java}/com/java/design/prototype/Prototype.java (94%) rename {java-des/src => src/main/java}/com/java/design/prototype/PrototypePattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/proxy/Dog.java (91%) rename {java-des/src => src/main/java}/com/java/design/proxy/DogImpl.java (93%) rename {java-des/src => src/main/java}/com/java/design/proxy/DogProxy.java (94%) rename {java-des/src => src/main/java}/com/java/design/proxy/ProxyPattern.java (95%) rename {java-des/src => src/main/java}/com/java/design/responsibility/AddMoneyRequest.java (93%) rename {java-des/src => src/main/java}/com/java/design/responsibility/DimissionRequest.java (93%) rename {java-des/src => src/main/java}/com/java/design/responsibility/HRRequestHandle.java (95%) rename {java-des/src => src/main/java}/com/java/design/responsibility/PMRequestHandle.java (95%) rename {java-des/src => src/main/java}/com/java/design/responsibility/Request.java (93%) rename {java-des/src => src/main/java}/com/java/design/responsibility/RequestHandler.java (95%) rename {java-des/src => src/main/java}/com/java/design/responsibility/ResponsibilityPattern.java (97%) rename {java-des/src => src/main/java}/com/java/design/singleton/SingletonA.java (94%) rename {java-des/src => src/main/java}/com/java/design/singleton/SingletonB.java (96%) rename {java-des/src => src/main/java}/com/java/design/singleton/SingletonC.java (96%) rename {java-des/src => src/main/java}/com/java/design/singleton/SingletonD.java (93%) rename {java-des/src => src/main/java}/com/java/design/state/Context.java (92%) rename {java-des/src => src/main/java}/com/java/design/state/Rain.java (92%) rename {java-des/src => src/main/java}/com/java/design/state/State.java (91%) rename {java-des/src => src/main/java}/com/java/design/state/StatePattern.java (95%) rename {java-des/src => src/main/java}/com/java/design/state/SunShine.java (93%) rename {java-des/src => src/main/java}/com/java/design/strategy/CalculateStrategy.java (92%) rename {java-des/src => src/main/java}/com/java/design/strategy/Strategy.java (95%) rename {java-des/src => src/main/java}/com/java/design/strategy/StrategyPattern.java (96%) rename {java-des/src => src/main/java}/com/java/design/strategy/TranficCalculator.java (95%) rename {java-des/src => src/main/java}/com/java/design/template/CarA.java (93%) rename {java-des/src => src/main/java}/com/java/design/template/CarB.java (93%) rename {java-des/src => src/main/java}/com/java/design/template/CarModel.java (92%) rename {java-des/src => src/main/java}/com/java/design/template/TemplatePattern.java (97%) rename {java-des/src => src/main/java}/com/java/design/visitor/BodyA.java (93%) rename {java-des/src => src/main/java}/com/java/design/visitor/BodyB.java (94%) rename {java-des/src => src/main/java}/com/java/design/visitor/VisitorPattern.java (95%) 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..fa92c83 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + \ 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..a68d14d --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -32,6 +54,9 @@ + + + @@ -39,7 +64,7 @@ - + @@ -51,13 +76,65 @@ - - - @@ -105,14 +188,38 @@ - + + + + + + + + + + + + + + + + + - + + + + + + + + + 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 0000000000000000000000000000000000000000..a49347afef10a9b5f95305e1058ba36adec7d6dd GIT binary patch literal 16 RcmZQzU|?ooU|@t|0RRA102TlM literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..adff00f87865cc590107fa3ac96602164875de01 GIT binary patch literal 588 zcma)3%TB^T6g>kim0G3Z178a@E`WvIxYLjbi7TQ+4T;NXJHe9Dns%zcrHO__6F-Gjr$r=i>{&DfUfN&@ixVqJ%~jI(7`~8rWlCj|@kBFP=DK{=^+$ zq`@e1+$;!v=Q(u-N$h8yJY%Sw2T>q94CQ8P$e{INUoh1AK_srSi7S#j?uLZa`?1Hv zAx{F;7oa8|f^?x#S2>D=j7%>PTn>05FXo%>eA8p7j)c4sX%n{_DXvtSQORosZ$!AU!lsH@v({;2!u@xmDh?~SD85L*eE<4 c%F17Fzd?JUVkTV4L3>VApNSH_nX|Tj0mLhP$N&HU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c79fdcf47d59644ad2f37ad7b387c351bb5e753a GIT binary patch literal 782 zcma)(OHaZ;5Xb)u1xhWTJbXU@U%yTLWkno{(0nHWqw_yPP- z##sVLh)ulg%zt+FH#;+5-yfdYE>VJnFwwpHwC*u|cTeQ6I=97=nXKrw+5L;PB} zBDi6QR;pbF#q=D`kZB2*-;IYo?%!Lz0Y$Pc&$b3#%NJ75f=cipMhvx)A3K zJ`#P`=#9m|FAAMg1KyMY?$;SK(pJ#6{GhQcn#;l@(ecK<&2NP)o?pRS$XYtq zpzA2(n1MACIMH#6GxD1{&Zmy4qavNkf4|323{9PNK>R0$a(KsW-*d)xK%IuOW;qP% zh|fn+sI;aN99VAO=mfrS`*pdIc?u0^?wTmkYBgFlpn%Ca(3v7-kY!|JwRf;raw166 z8J`9fWXPAPlz???kOi`f$5)gs@3h(*BH8E!$}d5qJ3ytf$t8-mpyWa*u?gaxIm6OsoimedRL8A?GMB}%4&V%Tc7M%Q&^+#?m0+1GI@ z1AZ=a7ZbmJd-~!I%BVXi!M4zFu%XGOhAj=-m|a$w$;n@GO84$_b;Xl3RA|r>7wO3v4Ba`c3|g1r5Ka&~CvH%* z+wWlQ-B%dTnWjQmL4nYLNy-wjDzUj-jT$D2Q5~k}r*UH%Geghoj03Cf7Z`6SOuuG0Blq0@d90E{H@Ss zG4%!a^_^_kxX$1dmf}#xf#M0DWy;VlgkB}5Id^RAV$Z<74Hu7WJjN3PPi<=UbB23` z6gn@4#d)<)2Io{2hHa;~C|5<)EinTbj}w*EWy|Rl2hA(lo3D=z>k>@2E~6ZRknYPYFynhSnQ& za%pF@SG!ZNFPVFR)>>vPW0Ah?9DoLv=wxCUD`e5Z7bw$@1hg+vI-8>GU7~WfGez}i zcY@mSR~UN})F&|K#4S`Qz(Aee29dQWt96plLfxDUO|pXgtGJ0bh+TO(|(g$)y)_DJy6tVu@7*m5M5{bP_9dmDrKvzyk43 zAVDgD!~^h9h#A{S!EwcAW;~vA=9_=cuixK)0yx660*ctp<2D|$sj;c&&?q2-T^UXG zdu;Y)9LPB2P|x8}4vz&gBh&L=3TW+1^S!ALOsB7(`JV0cpGQAikv9agFKoy5PXyBS z#<_rGxIIf?sck#f>&dWVd2h|mfHGR!?V5vg)3fi}eP!%k*(Vz;f$AxS0JeEhoM29~H8XwmbJi${oM*{i% z3TIo#wRvoCMHOX%%Ks!1P_Mhb>0DY}pSEL;MwZhPI7kv?L8Azh)ZVNciyF^(+%JtI@Mx32rEbRZ)9JJ>s0HUAFF#rGn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a81b42f7db66ef55bfdba11271beb12d8b1688ce GIT binary patch literal 573 zcma)3%Syvg5IwiAG%;#zt?x&>P+AwsMsQJaVL=dz3YG3}(`$Q6k}G*A{VZK5xbOq~ zC~=ZXiy-J`hMDu28Rp~j?H#}|>IMoZ>!@J0h^m1#tZUfNu&H5-p>QgF8J#g?8_ga= zuB`@wVYwrHaTR-g5!~{=OPz8@Io$2>KqmEfGZ&3y$k6CG%CpD(f!hNS%As%HaVJv2 z#1qj-4eZCzK5w^q(4r|p>@yf$6$g&EkcqRAVpbwIQG~8x+r$obQ=~@xnq^rU_Dt-f z#&Gz*Sq!CgA(#6@`?^0CPQ-BVr}mQ8{2}d5!bo_uxQfZ3+DT2NvTp+EN8Kn8+@rH9 zzqA>&`-J4u!PUl8m~KNV=?`1Y9_q-`Z-_{b%21~3DH>GSlo{px(JRLH<^AJC7A z&aOs12=;O=-<l)^nQDzZA_5A?ccDi%vuMD#(XmRNtsB1FzYh!*9jC;4Rrz zZI@pQTYLVaBlV5f;tySZQmF{PIzUU*)%K;(BwNTA#*rJtn>1s8sR zA0A#SHEd|uWSBdVfs9TWvh_xX zA=gqp!La1WKwQOsSA@5`>rtoVD3^O39?GQtZswwa95K`#SNZmkKXAJzMzSB+cifFs zIQB&}P(Ax`WS?EOc-W*VVH_|RZ54;EIG2gDkz!UNH&KADVavoec2cBD{HkSH8g@k>kLB&Z;rLu2A8ARfjSgza({G4KkIGP{>nR#k*_0XO{NXFuQwq;hOvpeM sCPi~XzycPjqMuF0$Eg{hKO7h&(BvO5gK-@ubv@#h2gIl;Vkxh) zTWO*MgT4yG2>qKFdDYnam2z5;Ip<0?6_|eLKYfVO(Q=hf|uw?)M literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5bc9ffc38bff093965e787ab1d1985741f0c7646 GIT binary patch literal 979 zcma)4(N5Gr6g{)sZFfrr1VIr5t0G+x>H|+=d~g#IlP*4BNQ_U@Ze2>YZPM*(_zu6s z7YLI00e+P6%xF?bOuB7y@64Hd&Y9lcU%!9+1h9`C8#Xp9Jhsumh6?Tsp5Up4XEscQ zm~bs@T6ivCzD}~Fd?V2Gx+elgFCWALb3u~DN0T&+iw`m!5m^ZGNRCcqk*NJY&?rxn zvB1k9%2WSLev$ql9w)=h|16_2FV54rJk1CG*Rg*{pvcer8aSX&Dw9lL+4~e|-biLc z|F|rYY<;o+K%4*BnMmYEOZ@gPf5OUIf1=evs?ERn6LiX z`|vD|O3qPK#Iod|biMA>UEQoTR_*6(7LyDvI-G0uG$2%$81HcBGYjU{_9eu3eLTx( zYOskpu2m@uFps;;9V}pxh$4TZSc|!PjmF1IG=rTB82uMlXbD`yBxD`!UZDNTSTQtM z8LY!1vCX$bDVvfGR=IL93y&7cc>k|B?qNySx>&}2ZM}vESfTkUs~<8p$!lYcn8EW$ ItZrca4{XWw*Z=?k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c1effe0e2bf83109635af6b6d0535cec5e53b98b GIT binary patch literal 142 zcmX^0Z`VEs1_l!bPId-%b_Nbc2IivDJRqr|8OF%K6`WsMl$`38nUl)M!0G9nSfrPg zSeD4hpqiYYs}Ex8r=%8VrswIWB_@~T7ggq_mSp6o=$9AkgA_9|2!Pe(B<7{-`zK|k fCYP`=GB7eQ0c~VpU}OPW!@vS!F|YzjCI&VDbsQlv literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d94c519c08caae7652f9f5a1bd20020de45bf77c GIT binary patch literal 197 zcmX^0Z`VEs1_l!bPId-%b_Nbc2Dap))WnihMg~m{O`qiaT>Y%XvPAuq)Z)zaJpHu9 z}yn3%{y z6BmAfzhMl2VVo9)Xf!6xOlHoUGv{_*-k+WUY$B&3f@BOS%tVn^F^f3`^9mLeEHXs4 zr6t`RhG4!>WeAn*x?q?pOH1r`TQ%Vv@tR4UWZ5>jS>=xO>d$7#J(eAYwX$Ki^d>*$ zdR=s6!_wQ1ecsd0I{L23jgu00i?l#+mqD%AUB?i6(i4q;!5bb~LliLu84X!1F=XCu zt_Ih)gZ|y?#pRDr!Lo)GtTN>OUCog2t(n|v=m)i?Fvv#sPa2v1#;Ei}yF|KXjz!R$NE$7CkQYOPfJydqbv0y!?>pn;@378pT2tIfUsrG)R{UP^KS1QKd?! z%qWM~AHnW@c!Hug3%3S#B&S_yK;D zcqdi5v02=cd+)jDoaF2K{S&}3wp|q9Sy*#nz|&>j!iI%ShQf)8RC>x_Hut*>xpv%_ z3>9BR@^Uij$>c`#hBT@9aUh0Wktp5&4s+?f8Z+$rK|JCE@hEs-j#U`(ha`S};ZI|J zAym{N*%2Xw*SzyH+E7Fx@1%)}!d7N0l8}Vz|EwA8Osy?ahP}m3*V>Xu6e$|W)9==g0j52vI@EDO zMwmaCg1u&Imuev!npmRu;*3C8qRv4X6`JVda}qNMOCK<9r!f7)H{|9bWtg#b&_LPq29pi5BVZ=OaK4? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d3c44fb0d9b7dec3727d35697a30dd5a51e2af65 GIT binary patch literal 992 zcmah{NpI6Y6#m8u^-`yG-If*-XhK<%05wY`4n-WO=qZ#+L6JD2i8~E0jvYA;&>P~& zonL@BasbgrDiT*D{syArR{(FEg&abW>^JYdnQxip+pohf09LVTAcG|xCh{r@22xlu zs5mFHWtpAVaRC=KTryBZNkdu1WffOcTxHPeK6jt4^O#||;)YFUmp|jqwrG2ez-dL{ zi#_Lg+qv6cw8k)T+Y7w-4nwL~sxhS3!)?JZUGW03*=g2A^pMwm>e!Xg<$jGvo~--L zbo|6?AFH$_CCLscWvVe*yU$w*m^_oFkVZAW6N~7cO!d0h2_uo@Mm6k2uGsLTd}ctj zA~$4W2DXW5SPX^#?$Sg~u0Ab87Pg8N6ArF1WCz0eqc?Al-oN|)^40KDaoxlX++@fN zJ>`GycYhqd9fN;egFflDi*2C5Wh{9=SEblzKS9*y3cuwkdjmX r2+h_HVEiRBXo_}5h8IUjq;+Xkk?&?4$>bQ4ERp2KkT9G{sLuWYGa1me literal 0 HcmV?d00001 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/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/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 起床。。。。"); + } + + +}