提交 f42813cc 编写于 作者: 门心叼龙's avatar 门心叼龙

code perfect

上级 363e2823
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<textMaps /> <textMaps />
</LinkMapSettings> </LinkMapSettings>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="JDK" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">
......
...@@ -3,7 +3,7 @@ package com.mxdl.desigin.pattern.behavior.a03_chain.entity; ...@@ -3,7 +3,7 @@ package com.mxdl.desigin.pattern.behavior.a03_chain.entity;
import com.mxdl.desigin.pattern.behavior.a03_chain.contract.Employee; import com.mxdl.desigin.pattern.behavior.a03_chain.contract.Employee;
/** /**
* Description: <SmallLeader><br> * Description: <BigLeader><br>
* Author: mxdl<br> * Author: mxdl<br>
* Date: 2019/12/29<br> * Date: 2019/12/29<br>
* Version: V1.0.0<br> * Version: V1.0.0<br>
......
...@@ -3,7 +3,7 @@ package com.mxdl.desigin.pattern.behavior.a03_chain.entity; ...@@ -3,7 +3,7 @@ package com.mxdl.desigin.pattern.behavior.a03_chain.entity;
import com.mxdl.desigin.pattern.behavior.a03_chain.contract.Employee; import com.mxdl.desigin.pattern.behavior.a03_chain.contract.Employee;
/** /**
* Description: <SmallLeader><br> * Description: <MiddleLeader><br>
* Author: mxdl<br> * Author: mxdl<br>
* Date: 2019/12/29<br> * Date: 2019/12/29<br>
* Version: V1.0.0<br> * Version: V1.0.0<br>
......
...@@ -20,8 +20,5 @@ public class Client { ...@@ -20,8 +20,5 @@ public class Client {
System.out.println(person.toString()); System.out.println(person.toString());
person.reMementtoPerson(mementtoPerson); person.reMementtoPerson(mementtoPerson);
System.out.println(person.toString()); System.out.println(person.toString());
} }
} }
...@@ -14,7 +14,7 @@ import com.mxdl.desigin.pattern.behavior.a07_expain.entity.SubExplain; ...@@ -14,7 +14,7 @@ import com.mxdl.desigin.pattern.behavior.a07_expain.entity.SubExplain;
*/ */
public class Client { public class Client {
public static void main(String[] args) { public static void main(String[] args) {
// 2+4*2-3 //2+4*2-3
NumberExpain expain2 = new NumberExpain(2); NumberExpain expain2 = new NumberExpain(2);
NumberExpain expain4 = new NumberExpain(4); NumberExpain expain4 = new NumberExpain(4);
NumberExpain expain3 = new NumberExpain(3); NumberExpain expain3 = new NumberExpain(3);
......
@startuml @startuml
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
package "Explain Pattern"{
interface IExplain { interface IExplain {
explain():int explain():int
} }
...@@ -23,4 +24,6 @@ class MulExplain implements IExplain ...@@ -23,4 +24,6 @@ class MulExplain implements IExplain
class DevExplain class DevExplain
note bottom:除法语法算法 note bottom:除法语法算法
class DevExplain implements IExplain class DevExplain implements IExplain
}
@enduml @enduml
\ No newline at end of file
...@@ -2,13 +2,13 @@ package com.mxdl.desigin.pattern.behavior.a09_state; ...@@ -2,13 +2,13 @@ package com.mxdl.desigin.pattern.behavior.a09_state;
import com.mxdl.desigin.pattern.behavior.a09_state.entity.Light; import com.mxdl.desigin.pattern.behavior.a09_state.entity.Light;
/** /**
* Description: <Test><br> * Description: <Client><br>
* Author: mxdl<br> * Author: mxdl<br>
* Date: 2019/12/26<br> * Date: 2019/12/26<br>
* Version: V1.0.0<br> * Version: V1.0.0<br>
* Update: <br> * Update: <br>
*/ */
public class Test { public class Client {
public static void main(String[] args) { public static void main(String[] args) {
Light light = new Light(); Light light = new Light();
light.onPress(); light.onPress();
......
...@@ -21,5 +21,4 @@ public class Client { ...@@ -21,5 +21,4 @@ public class Client {
usa.sendMessage("不要研究核武器,否则将发生战争"); usa.sendMessage("不要研究核武器,否则将发生战争");
irap.sendMessage("我们没有研究核武器,我们也不怕侵略"); irap.sendMessage("我们没有研究核武器,我们也不怕侵略");
} }
} }
@startuml @startuml
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
package "class Singleton" #FFFFFF { package "Singleton Pattern"{
class Singleton{ class Singleton{
-Singleton() -Singleton()
+getInstance():Singleton +getInstance():Singleton
} }
note top: 确保一个类只有一个实例对象存在,而且自行实例化,\n自行提供对外访问的接口 note top: 确保一个类只有一个实例对象存在而且自行实例化,\n自行提供对外访问的接口
Singleton <.. Client Singleton <.. Client
} }
......
@startuml @startuml
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
package "class Builder"{ package "Builder Pattern"{
interface IPersonBuilder{ interface IPersonBuilder{
+createHeader():String +createHeader():String
+createBody():String +createBody():String
......
package com.mxdl.desigin.pattern.create.a04_factory_method; package com.mxdl.desigin.pattern.create.a04_factory_method;
import com.mxdl.desigin.pattern.create.a04_factory_method.contract.IOperate; import com.mxdl.desigin.pattern.create.a04_factory_method.contract.IOperate;
import com.mxdl.desigin.pattern.create.a04_factory_method.factory.AddFactoryI; import com.mxdl.desigin.pattern.create.a04_factory_method.factory.AddFactory;
import com.mxdl.desigin.pattern.create.a04_factory_method.factory.SubFactoryI; import com.mxdl.desigin.pattern.create.a04_factory_method.factory.SubFactory;
/** /**
* Description: <Client><br> * Description: <Client><br>
...@@ -13,11 +13,11 @@ import com.mxdl.desigin.pattern.create.a04_factory_method.factory.SubFactoryI; ...@@ -13,11 +13,11 @@ import com.mxdl.desigin.pattern.create.a04_factory_method.factory.SubFactoryI;
*/ */
public class Client { public class Client {
public static void main(String[] args) { public static void main(String[] args) {
IOperate addPerrate = new AddFactoryI().createOperate(); IOperate addPerrate = new AddFactory().createOperate();
int operate1 = addPerrate.operate(12, 22); int operate1 = addPerrate.operate(12, 22);
System.out.println("计算结果:"+operate1); System.out.println("计算结果:"+operate1);
IOperate IOperate = new SubFactoryI().createOperate(); IOperate IOperate = new SubFactory().createOperate();
int operate2 = IOperate.operate(12, 2); int operate2 = IOperate.operate(12, 2);
System.out.println("计算结果1:"+operate2); System.out.println("计算结果1:"+operate2);
......
...@@ -5,13 +5,13 @@ import com.mxdl.desigin.pattern.create.a04_factory_method.contract.IOperateFacto ...@@ -5,13 +5,13 @@ import com.mxdl.desigin.pattern.create.a04_factory_method.contract.IOperateFacto
import com.mxdl.desigin.pattern.create.a04_factory_method.entity.OperateAdd; import com.mxdl.desigin.pattern.create.a04_factory_method.entity.OperateAdd;
/** /**
* Description: <AddFactoryI><br> * Description: <AddFactory><br>
* Author: mxdl<br> * Author: mxdl<br>
* Date: 2019/12/23<br> * Date: 2019/12/23<br>
* Version: V1.0.0<br> * Version: V1.0.0<br>
* Update: <br> * Update: <br>
*/ */
public class AddFactoryI implements IOperateFactory { public class AddFactory implements IOperateFactory {
@Override @Override
public IOperate createOperate() { public IOperate createOperate() {
return new OperateAdd(); return new OperateAdd();
......
...@@ -5,13 +5,13 @@ import com.mxdl.desigin.pattern.create.a04_factory_method.contract.IOperateFacto ...@@ -5,13 +5,13 @@ import com.mxdl.desigin.pattern.create.a04_factory_method.contract.IOperateFacto
import com.mxdl.desigin.pattern.create.a04_factory_method.entity.OperateSub; import com.mxdl.desigin.pattern.create.a04_factory_method.entity.OperateSub;
/** /**
* Description: <AddFactoryI><br> * Description: <SubFactory><br>
* Author: mxdl<br> * Author: mxdl<br>
* Date: 2019/12/23<br> * Date: 2019/12/23<br>
* Version: V1.0.0<br> * Version: V1.0.0<br>
* Update: <br> * Update: <br>
*/ */
public class SubFactoryI implements IOperateFactory { public class SubFactory implements IOperateFactory {
@Override @Override
public IOperate createOperate() { public IOperate createOperate() {
return new OperateSub(); return new OperateSub();
......
@startuml @startuml
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
package FactoryMethod{ package "Factory Method Pattern"{
interface IOperate{ interface IOperate{
+oprerate(int left,int right):int +oprerate(int left,int right):int
......
package com.mxdl.desigin.pattern.create.a05_factory_abstract; package com.mxdl.desigin.pattern.create.a05_factory_abstract;
import com.mxdl.desigin.pattern.create.a05_factory_abstract.contract.IPerson;
import com.mxdl.desigin.pattern.create.a05_factory_abstract.factory.ManFactory;
/** /**
* Description: <Client><br> * Description: <Client><br>
* Author: mxdl<br> * Author: mxdl<br>
...@@ -8,4 +11,14 @@ package com.mxdl.desigin.pattern.create.a05_factory_abstract; ...@@ -8,4 +11,14 @@ package com.mxdl.desigin.pattern.create.a05_factory_abstract;
* Update: <br> * Update: <br>
*/ */
public class Client { public class Client {
public static void main(String[] args) {
ManFactory manFactory = new ManFactory();
IPerson whitePerson = manFactory.createWhitePerson();
IPerson yellowPerson = manFactory.createYellowPerson();
IPerson blackPerson = manFactory.createBlackPerson();
whitePerson.eat();
yellowPerson.eat();
blackPerson.eat();
}
} }
...@@ -8,7 +8,7 @@ package com.mxdl.desigin.pattern.create.a05_factory_abstract.contract; ...@@ -8,7 +8,7 @@ package com.mxdl.desigin.pattern.create.a05_factory_abstract.contract;
* Update: <br> * Update: <br>
*/ */
public interface IPersonFactory { public interface IPersonFactory {
IPerson createWhitePersonFactory(); IPerson createWhitePerson();
IPerson createBlackPersonFactory(); IPerson createBlackPerson();
IPerson createYellowPersonFactory(); IPerson createYellowPerson();
} }
...@@ -15,17 +15,17 @@ import com.mxdl.desigin.pattern.create.a05_factory_abstract.entity.YellowManPers ...@@ -15,17 +15,17 @@ import com.mxdl.desigin.pattern.create.a05_factory_abstract.entity.YellowManPers
*/ */
public class ManFactory implements IPersonFactory { public class ManFactory implements IPersonFactory {
@Override @Override
public IPerson createWhitePersonFactory() { public IPerson createWhitePerson() {
return new WhiteManPerson(); return new WhiteManPerson();
} }
@Override @Override
public IPerson createBlackPersonFactory() { public IPerson createBlackPerson() {
return new BlackManPerson(); return new BlackManPerson();
} }
@Override @Override
public IPerson createYellowPersonFactory() { public IPerson createYellowPerson() {
return new YellowManPerson(); return new YellowManPerson();
} }
} }
...@@ -14,17 +14,17 @@ import com.mxdl.desigin.pattern.create.a05_factory_abstract.entity.YellowWomanPe ...@@ -14,17 +14,17 @@ import com.mxdl.desigin.pattern.create.a05_factory_abstract.entity.YellowWomanPe
*/ */
public class WomanFactory implements IPersonFactory { public class WomanFactory implements IPersonFactory {
@Override @Override
public IPerson createWhitePersonFactory() { public IPerson createWhitePerson() {
return new WhiteWomanPerson(); return new WhiteWomanPerson();
} }
@Override @Override
public IPerson createBlackPersonFactory() { public IPerson createBlackPerson() {
return new WhiteWomanPerson(); return new WhiteWomanPerson();
} }
@Override @Override
public IPerson createYellowPersonFactory() { public IPerson createYellowPerson() {
return new YellowWomanPerson(); return new YellowWomanPerson();
} }
} }
@startuml @startuml
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
package "Abstract Factory"{ package "Abstract Factory Pattern"{
interface IPerson{ interface IPerson{
+eat():void +eat():void
+sleep():void +sleep():void
...@@ -36,9 +36,9 @@ note bottom:黑色女人 ...@@ -36,9 +36,9 @@ note bottom:黑色女人
class BlackWomanPerson extends BlackPerson class BlackWomanPerson extends BlackPerson
interface IPersonFactory { interface IPersonFactory {
+createWhitePersonFactory():IPerson; +createWhitePerson():IPerson;
+IPerson createBlackPersonFactory():IPerson; +IPerson createBlackPerson():IPerson;
+IPerson createYellowPersonFactory():IPerson; +IPerson createYellowPerson():IPerson;
} }
note top:定义一个创建一组相关或具有相互依赖关系\n的对象的接口,而且无需指定他们的具体类型 note top:定义一个创建一组相关或具有相互依赖关系\n的对象的接口,而且无需指定他们的具体类型
class ManFactory class ManFactory
......
package com.mxdl.desigin.pattern.create.a06_prototype; package com.mxdl.desigin.pattern.create.a06_prototype;
import com.mxdl.desigin.pattern.create.a06_prototype.contract.APerson; import com.mxdl.desigin.pattern.create.a06_prototype.contract.APerson;
import com.mxdl.desigin.pattern.create.a06_prototype.prototype.PrototypePerson;
/** /**
* Description: <Client><br> * Description: <Client><br>
......
package com.mxdl.desigin.pattern.create.a06_prototype; package com.mxdl.desigin.pattern.create.a06_prototype.entity;
import com.mxdl.desigin.pattern.create.a06_prototype.contract.APerson; import com.mxdl.desigin.pattern.create.a06_prototype.contract.APerson;
......
package com.mxdl.desigin.pattern.create.a06_prototype; package com.mxdl.desigin.pattern.create.a06_prototype.prototype;
import com.mxdl.desigin.pattern.create.a02_builder.entity.Person; import com.mxdl.desigin.pattern.create.a06_prototype.entity.CopyPerson;
import com.mxdl.desigin.pattern.create.a06_prototype.contract.APerson; import com.mxdl.desigin.pattern.create.a06_prototype.contract.APerson;
/** /**
......
@startuml @startuml
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
package Prototype{ package "Prototype Pattern"{
abstract class APerson abstract class APerson
class PrototypePerson class PrototypePerson
note bottom:由原型对象来指定创建对象的类型,\n并通过拷贝原型对象来新创建的对象 note bottom:由原型对象来指定创建对象的类型,\n并通过拷贝原型对象来创建新的对象
class PrototypePerson extends APerson{ class PrototypePerson extends APerson{
+clonePerson():APerson +clonePerson():APerson
} }
......
...@@ -3,7 +3,7 @@ package com.mxdl.desigin.pattern.structure.a01_adapter.entity; ...@@ -3,7 +3,7 @@ package com.mxdl.desigin.pattern.structure.a01_adapter.entity;
import com.mxdl.desigin.pattern.structure.a01_adapter.contract.APlayer; import com.mxdl.desigin.pattern.structure.a01_adapter.contract.APlayer;
/** /**
* Description: <QiaoDan><br> * Description: <KeBi><br>
* Author: mxdl<br> * Author: mxdl<br>
* Date: 2019/12/29<br> * Date: 2019/12/29<br>
* Version: V1.0.0<br> * Version: V1.0.0<br>
......
...@@ -15,7 +15,7 @@ package "Adapter Pattern"{ ...@@ -15,7 +15,7 @@ package "Adapter Pattern"{
class TranslaterAdapter extends APlayer class TranslaterAdapter extends APlayer
class TranslaterAdapter class TranslaterAdapter
note left:适配器对象 note left:适配器对象
note top:将一个接口转换为客户所需要的另外一个接口,\n使原来由于接口不兼容而不能在一起工作的两\n个类能够在一起正常工作 note top:将一个接口转换为客户所需要的另外一个接口\n使原来由于接口不兼容而不能在一起工作的两\n个类能够在一起正常工作
TranslaterAdapter --> YaoMing TranslaterAdapter --> YaoMing
class YaoMing class YaoMing
note right:被适配的对象 note right:被适配的对象
......
@startuml @startuml
skinparam classAttributeIconSize 0
package Proxy{ package Proxy{
interface Subject{ interface Subject{
+request():void +request():void
......
package com.mxdl.desigin.pattern.structure.a04_face; package com.mxdl.desigin.pattern.structure.a04_facade;
import com.mxdl.desigin.pattern.structure.a04_face.entity.CookManager; import com.mxdl.desigin.pattern.structure.a04_facade.entity.CookManager;
import com.mxdl.desigin.pattern.structure.a04_face.entity.NoodleCook; import com.mxdl.desigin.pattern.structure.a04_facade.entity.NoodleCook;
import com.mxdl.desigin.pattern.structure.a04_face.entity.RiceCook; import com.mxdl.desigin.pattern.structure.a04_facade.entity.RiceCook;
/** /**
* Description: <Client><br> * Description: <Client><br>
......
package com.mxdl.desigin.pattern.structure.a04_face.contract; package com.mxdl.desigin.pattern.structure.a04_facade.contract;
/** /**
* Description: <ICook><br> * Description: <ICook><br>
......
package com.mxdl.desigin.pattern.structure.a04_face.entity; package com.mxdl.desigin.pattern.structure.a04_facade.entity;
/** /**
* Description: <CookManager><br> * Description: <CookManager><br>
......
package com.mxdl.desigin.pattern.structure.a04_face.entity; package com.mxdl.desigin.pattern.structure.a04_facade.entity;
import com.mxdl.desigin.pattern.structure.a04_face.contract.ICook; import com.mxdl.desigin.pattern.structure.a04_facade.contract.ICook;
/** /**
* Description: <NoodleCook><br> * Description: <NoodleCook><br>
......
package com.mxdl.desigin.pattern.structure.a04_face.entity; package com.mxdl.desigin.pattern.structure.a04_facade.entity;
import com.mxdl.desigin.pattern.structure.a04_face.contract.ICook; import com.mxdl.desigin.pattern.structure.a04_facade.contract.ICook;
/** /**
* Description: <NoodleCook><br> * Description: <NoodleCook><br>
......
@startuml @startuml
skinparam classAttributeIconSize 0 skinparam classAttributeIconSize 0
package "Face Pattern"{ package "Facade Pattern"{
interface ICook { interface ICook {
cooking():void cooking():void
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册