设计模式(代码基本参考大话设计模式一书)
忧郁的小菜鸡
这个作者很懒,什么都没留下…
展开
-
设计模式——适配器模式(代码基本参考自《大话设计模式》)
public abstract class Target { public void request() { System.out.println("普通请求..."); } } public class Adaptee { public void specificRequest() { System.out.println("特殊请求..."); } } public class Adapter extends Target{ private Adaptee adaptee = n原创 2020-11-04 13:42:53 · 81 阅读 · 0 评论 -
设计模式——享元模式(代码基本参考自《大话设计模式》)
public abstract class Flyweight { public abstract void operation(int extrinsicstate); } public class ConcreteFlyweight extends Flyweight { @Override public void operation(int extrinsicstate) { System.out.println("具体 flyweight : "+extrinsicstate); }原创 2020-11-02 09:08:54 · 68 阅读 · 0 评论 -
设计模式——抽象工厂模式(代码基本参考自《大话设计模式》)
public interface IUser { public void Insert(User user); public User getUser(int id); } public interface IDepartment { public void Insert(Department department); public Department getDepartment(int id); } public class User { private int id; private原创 2020-11-02 09:08:33 · 68 阅读 · 0 评论 -
设计模式——观察者模式(代码基本参考自《大话设计模式》)
参考:博客 public abstract class Subject { private List<Observer> observers = new LinkedList<Observer>(); // 增加观察者 public void attach(Observer observer) { observers.add(observer); } // 移除观察者 public void detach(Observer observer) { obser原创 2020-11-02 09:08:17 · 94 阅读 · 0 评论 -
设计模式——中介者模式(代码基本参考自《大话设计模式》)
public abstract class Colleague { protected Mediator mediator; public Colleague(Mediator mediator) { this.mediator = mediator; } } public abstract class Mediator { public abstract void send(String message,Colleague colleague); } public class Con原创 2020-10-31 13:38:05 · 111 阅读 · 0 评论 -
设计模式——访问者模式(代码基本参考自《大话设计模式》)
public abstract class Element { public abstract void accept(Visitor visitor); } public abstract class Visitor { public abstract void visitConcreteElementA(ConcreteElementA concreteElementA); public abstract void visitConcreteElementB(ConcreteElementB原创 2020-10-31 13:37:25 · 113 阅读 · 0 评论 -
设计模式——建造者模式(代码基本参考自《大话设计模式》)
public abstract class Builder { public abstract void buildPartA(); public abstract void buildPartB(); public abstract Product getResult(); } public class Product { List<String> parts = new LinkedList<String>(); public void Add(String p原创 2020-10-30 13:49:27 · 131 阅读 · 0 评论 -
设计模式——职责链模式(代码基本参考自《大话设计模式》)
public abstract class Handler { protected Handler successor; private String name; public Handler(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public原创 2020-10-30 13:49:02 · 93 阅读 · 0 评论 -
设计模式——桥接模式(代码基本参考自《大话设计模式》)
public abstract class Implementor { public abstract void operation(); } public class ConcreteImplementorA extends Implementor{ @Override public void operation() { // TODO Auto-generated method stub System.out.println("具体实现 A 的方法执行"); } } public原创 2020-10-30 13:48:25 · 102 阅读 · 0 评论 -
设计模式——迭代器模式(代码基本参考自《大话设计模式》)
// 迭代器抽象类 public abstract class Iterator { public abstract Object first(); public abstract Object next(); public abstract boolean isDone(); public abstract Object currentItem(); } public class ConcreteIterator extends Iterator{ private ConcreteAggre原创 2020-10-30 13:47:54 · 105 阅读 · 0 评论 -
设计模式——单例模式(代码基本参考自《大话设计模式》)
public class Singleton { private static Singleton instance = null; private static final Object lock = new Object(); public Singleton(){ } public static Singleton getInstance() { synchronized (lock) { if(instance == null) { instance原创 2020-10-30 13:47:34 · 74 阅读 · 0 评论 -
设计模式——外观模式(代码基本参考自《大话设计模式》)
public class SubSystemOne { public void MethodOne() { System.out.println("子系统方法一"); } } public class SubSystemTwo { public void MethodTwo(){ System.out.println("子系统方法二"); } } public class SubSystemThree { public void MethodThree(){ System.out.pr原创 2020-10-29 10:31:50 · 79 阅读 · 0 评论 -
设计模式——原型模式(代码基本参考自《大话设计模式》)
原型模式,将白了就是对象的复制,java 中有已经提供了接口 Cloneable 。当然还有另外一种通过序列化的形式实现 public class WorkExperience implements Cloneable,Serializable{ private String workDate; private String company; public WorkExperience(String workDate, String company) { super(); this.wor原创 2020-10-29 10:31:11 · 74 阅读 · 0 评论 -
设计模式——模板模式(代码基本参考自《大话设计模式》)
public abstract class AbstractClass { public abstract void operation_1(); public abstract void operation_2(); public void templateMethod() { operation_1(); operation_2(); } } public class ConcreteClassA extends AbstractClass{ @Override public原创 2020-10-29 10:30:27 · 71 阅读 · 0 评论 -
设计模式——工厂模式(代码基本参考自《大话设计模式》)
public interface IFactory { LeiFeng createLeiFeng(); } // 雷锋类 public class LeiFeng { public void sweep() { System.out.println("扫地"); } public void wash() { System.out.println("洗衣"); } public void buyRice() { System.out.println("买米"); } } //原创 2020-10-28 17:06:20 · 65 阅读 · 0 评论 -
设计模式——代理模式(代码基本参考自《大话设计模式》)
// 定义一个请求接口 public interface SubjectInterface { public abstract void request(); } public class RealSubject implements SubjectInterface{ @Override public void request() { System.out.println("真实的请求实现..."); } } // 代理类 // 保存一个引用,使得代理可以访问实体,并提供一个与接口相原创 2020-10-28 17:05:32 · 74 阅读 · 0 评论 -
设计模式——装饰模式(代码基本参考自《大话设计模式》)
/** * 需要装饰的对象 * @author win10 */ public class NeedDecoratorObj { private String name ; public NeedDecoratorObj(){ } // 有了有参构造方法 无参方法不要忘记了(当然更具实际情况,但这里需要) public NeedDecoratorObj(String name) { this.name = name; } public void show() { }原创 2020-10-28 17:05:07 · 53 阅读 · 0 评论 -
设计模式——策略模式(代码基本参考自《大话设计模式》)
// 策略是多变的,故将策略抽象出来 abstract class Strategy { // 算法方法 public abstract void algorithmInterface(); } // 具体策略 public class ConcreteStrategyA extends Strategy{ @Override public void algorithmInterface() { System.out.println("策略 A..."); } } public cl原创 2020-10-28 17:04:24 · 55 阅读 · 0 评论 -
设计模式——简单工厂模式(代码基本来自《大话设计模式》)
在阅读框架的源码之前,再把设计模式过一遍吧!代码来自《大话设计模式》一书 p50 public class OperationFactory { public static Operation createOperate(String operate) { Operation oper = null; switch(operate) { case "+": oper = (Operation) new OperationAdd(); break; case "-":原创 2020-10-28 17:03:08 · 91 阅读 · 0 评论