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

code perfect

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