![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DesignPatterns
OHISAY
java
展开
-
Behavior pattern -- Command Pattern
1 命令模式2 执行代码interface Command{ public void execute();}class Stock{ private String name = "alibaba"; private int amount = 10; public void buy(){ System.out.println("buy"); ...原创 2018-07-01 14:29:46 · 85 阅读 · 0 评论 -
Behavior pattern -- Interpreter Pattern
1 解释器模式2 实现代码interface Expression{ public boolean interpret(String context);}class TerminalExpression implements Expression{ private String data; public TerminalExpression(String data){...原创 2018-07-02 06:35:19 · 109 阅读 · 0 评论 -
Structural model -- Filter Pattern
1 过滤器模式2 class Person{ private String gender; private String marital; public Person(String gender, String marital){ this.gender = gender; this.marital = marital; ...原创 2018-06-27 07:03:20 · 110 阅读 · 0 评论 -
Behavior pattern -- Iterator Pattern
1 迭代器模式2 实现代码interface Iterator{ public boolean hasNext(); public Object next();}interface Container{ public Iterator getIterator();}class NameContainer implements Container{ priva...原创 2018-07-02 21:11:58 · 112 阅读 · 0 评论 -
Behavior pattern -- Mediator Pattern
1 中介者模式2 实现class Chatroom{ public static void showMessage(String name, String message){ System.out.println(name + ":" + message); }}class User{ private String name; public Us...原创 2018-07-03 06:17:29 · 115 阅读 · 0 评论 -
Behavior pattern -- Memento Pattern
1 备忘录模式 2 实现代码import java.util.ArrayList;import java.util.List;class Memento{ private String state; public Memento(String state) { this.state = state; } public String getStat...原创 2018-07-03 06:50:16 · 134 阅读 · 0 评论 -
Structural model -- composite mode
1 组合模式2 代码实现class Employee{ private String name; private String dept; private List<Employee> employees; public Employee(String name, String dept){ this.name = name; ...原创 2018-06-28 06:16:46 · 159 阅读 · 0 评论 -
Structural model -- Decorator Pattern
1 装饰器模式 2 实现 interface Shape{ public void draw();}class Rectangle implements Shape{ @Override public void draw() { System.out.println("rectangle"); }}class Circle impleme...原创 2018-06-28 06:40:54 · 97 阅读 · 0 评论 -
Behavior pattern -- Observer Pattern
1 观察者模式2 实现代码class Subject{ private List<Observer> observerList = new ArrayList<>(); private int state; public int getState() { return state; } public void se...原创 2018-07-03 20:34:56 · 90 阅读 · 0 评论 -
Behavior pattern -- State Pattern
1 状态模式2 代码实现interface State{ public void doAction(Context context);}class Context{ private State state; public Context() { this.state = null; } public State getState()...原创 2018-07-03 20:55:10 · 95 阅读 · 0 评论 -
Behavior pattern -- Null Object Pattern
1 空对象模式2 代码实现。 import javax.sound.midi.Soundbank;abstract class Customer{ protected String name; abstract boolean isNull(); abstract String getName();}class RealCustomer extends Custo...原创 2018-07-03 21:13:22 · 109 阅读 · 0 评论 -
Behavior pattern -- Strategy Pattern
1 策略模式2 代码实现。 interface Strategy{ public int executeOperation(int x, int y);}class AddOperation implements Strategy{ @Override public int executeOperation(int x, int y) { retur...原创 2018-07-03 21:26:22 · 97 阅读 · 0 评论 -
Behavior pattern -- Template Pattern
1 模板模式2 实现。 abstract class Game{ public abstract void start(); public abstract void end(); public final void play(){ start(); end(); }}class Cricket extends Game{ ...原创 2018-07-04 06:35:21 · 129 阅读 · 0 评论 -
Behavior pattern -- Visitor Pattern
1 访问者模式2 实现。 interface ComputerPart{ public void accept(Visitor visitor);}class Mouse implements ComputerPart{ @Override public void accept(Visitor visitor) { visitor.visitMo...原创 2018-07-04 06:58:15 · 111 阅读 · 0 评论 -
Structural model -- Facade Pattern
1 外观模式2 实现代码interface Shape{ public void draw();}class Rectangle implements Shape{ @Override public void draw() { System.out.println("rectangle"); }}class Circle implement...原创 2018-06-29 05:57:05 · 133 阅读 · 0 评论 -
Structural model -- Flyweight Pattern
1 享元模式2 实现代码interface Shape{ public void draw();}class Circle implements Shape{ private String color; private int radius; public Circle(String color){ this.color = color; ...原创 2018-06-29 06:25:21 · 128 阅读 · 0 评论 -
Structural model -- Structural model
1 适配器模式2 代码interface AdvancePlayer{ public void playMp4(); public void playVlc();}class VlcPlayer implements AdvancePlayer{ @Override public void playMp4() { } @Override ...原创 2018-06-25 21:52:45 · 878 阅读 · 0 评论 -
Behavior pattern -- Chain of Responsibility Pattern
1 责任链模式2 实现代码 abstract class AbstractLogger{ public static int Info = 1; public static int Error = 3; protected int level; protected AbstractLogger nextLogger; public void s...原创 2018-06-30 07:02:34 · 90 阅读 · 0 评论 -
Create mode -- Factory method
1 工厂方法模式2 interface Shape{ public void draw(); } class Rectangle implements Shape{ @Override public void draw() { System.out.println("Draw rectangle"); ...原创 2018-06-22 16:03:09 · 90 阅读 · 0 评论 -
Create Mode -- Abstract Factory
1 抽象工厂模式2 代码实现interface Shape{ public void draw();}class Rectangle implements Shape{ @Override public void draw() { System.out.println("draw rectangle"); }}class Square imp...原创 2018-06-22 20:57:07 · 109 阅读 · 0 评论 -
Create Mode -- Singlton
1 单例模式2 代码实现class Singleton{ private static Singleton singleton = new Singleton(); private Singleton(){ } public static Singleton getSingleton(){ System.out.println("this is si...原创 2018-06-22 21:15:02 · 808 阅读 · 0 评论 -
Create Mode -- Prototype Pattern
1 原型模式2 代码abstract class Shape{ protected String type; public String getType() { System.out.println(type); return type; }}class Rectangle extends Shape{ public Rectan...原创 2018-06-24 19:10:12 · 119 阅读 · 0 评论 -
Structural model -- Proxy Pattern
1 代理模式2 实现代码interface Image{ public void draw();}class RealImage implements Image{ private String name; public RealImage(String name){ this.name = name; } @Override p...原创 2018-06-29 06:46:08 · 104 阅读 · 0 评论