![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
design patterns
yjz764297625
这个作者很懒,什么都没留下…
展开
-
设计模式----中介者模式(demiator pattern)
Stock stock; public AbstractMediator(){ purchase = new Purchase(this); sale = new Sale(this); stock = new Stock(this); } public abstract void execute(String str,Object ...objects);}[/code]Mediator.java代码如下:[code="java原创 2013-07-21 22:55:30 · 61 阅读 · 0 评论 -
设计模式----门面模式(facade)
ring address); public void letterIntoEnvelope(); public void sendLetter();}[/code]LetterProcessImpl.java代码如下:[code="java"]package com.designPattern.facade;public class LetterProcessImpl implements LetterProcess{ pu原创 2013-07-14 13:30:45 · 59 阅读 · 0 评论 -
设计模式----抽象工厂模式(abstract factory pattern)
ic void sex(); }[/code]AbstractBlackHuman.java代码如下:[code="java"]package com.designPattern.abstractfactory;public abstract class AbstractBlackHuman implements Human { public void cry(){ System.out.println("黑色人种会哭!原创 2013-07-13 23:09:10 · 99 阅读 · 0 评论 -
设计模式----工厂方法模式(factory method pattern)
Pattern.factoryMethod; public interface Human { public void laugh(); public void cry(); public void talk();}[/code]Human接口的具体实现类为:BlackHuman.java代码如下:[code="java"]package com.designPattern.factoryMethod;pu原创 2013-07-10 22:19:23 · 67 阅读 · 0 评论 -
设计模式----多例模式(Multition)
*/public class Emperor { private static int maxNumOfEmperor = 2; private static ArrayList emperorInfoList = new ArrayList(maxNumOfEmperor); private static ArrayList emperorList = new ArrayList(maxNumOfEmperor); private static int countNumOfEmp原创 2013-07-02 22:47:06 · 92 阅读 · 0 评论 -
设计模式----单例模式(singleton)
n;/** * 单例模式的第一种实现方式 * @author yangjianzhou * */public class SingletonPattern { private static SingletonPattern singletonPattern = null; /** * 将构造函数的修饰符设置为private的目的就是不能直接产生一个实例 */ private SingletonPattern(){ } /*原创 2013-06-30 22:17:20 · 58 阅读 · 0 评论 -
设计模式----代理模式(proxy)
原创 2013-06-30 22:02:54 · 72 阅读 · 0 评论 -
设计模式----策略模式(strategy)
attern.strategy.interfaces;/** * 定义一个接口,这是诸葛亮老人家给赵云的三个妙计的接口 * @author yangjianzhou * */public interface IStrategy { public void operate();}[/code]接下来就是妙计的具体实现类BackDoor.java代码如下:[code="java"]package com.desig原创 2013-06-29 22:17:33 · 66 阅读 · 0 评论 -
装饰着模式(decorator)
(){ return description; } public abstract double cost();}[/code][code="java"]package com.base;public abstract class CondimentDecorator extends Beverage { public abstract String getDescription();}[/code][code="原创 2012-09-09 21:51:44 · 79 阅读 · 0 评论 -
观察者模式(observer)
DisplayElement接口都是用户自定义的接口。[code="java"]package com.interfaces;public interface Subject { public void registerObserver(Observer o); public void removeObserver(Observer o); public void notifyObservers(); }[/code][co原创 2012-09-09 19:36:49 · 70 阅读 · 0 评论 -
设计模式----适配器模式(adapter)
Name(); public String getHomeAddress(); public String getMobileNumber(); public String getOfficeTelNumber(); public String getJobPosition(); public String getHomeTelNumber();}[/code]UserInfo.java代码如下:[code="java&qu原创 2013-07-14 13:37:32 · 67 阅读 · 0 评论 -
设计模式----模板方法模式(template method pattern)
op(); protected abstract void alarm(); protected abstract void engineBoom(); /** * 这就是模板方法:run()定义了其他方法的顺序,并且子类不能修改这个run()方法(修饰符为final) * 在模板方法中按照一定的规则和顺序调用抽象方法,抽象方法在不同的子类中内容不同 */ final public void run(){ this.start();原创 2013-07-14 17:00:33 · 52 阅读 · 0 评论 -
设计模式----原型模式(prototype pattern)
public String getAdvSubject() { return advSubject; } public String getAdvContext() { return advContext; }}[/code]Mail.java代码如下:[code="java"] package com.designPattern.prototype;/** * * @author yangjianzh原创 2013-07-21 22:51:03 · 63 阅读 · 0 评论 -
设计模式----状态模式(state pattern)
ract void close(); public abstract void run(); public abstract void stop(); public Context getContext() { return context; } public void setContext(Context context) { this.context = context; }}[/code]ClosingState.jav原创 2013-07-21 22:48:45 · 59 阅读 · 0 评论 -
设计模式----访问者模式(visitor pattern)
ger);}[/code]Visitor.java代码如下:[code="java"] package com.designPattern.visitor;public class Visitor implements IVisitor{ @Override public void visit(CommonEmployee commonEmployee) { System.out.println(this.getCommonEmplo原创 2013-07-21 22:44:28 · 56 阅读 · 0 评论 -
设计模式----观察者模式(observer)
erver.java代码如下:[code="java"]package com.designPattern.abserver;public interface Observer { public void update(String context);}[/code]LiSi.java代码如下:[code="java"]package com.designPattern.abserver;public原创 2013-07-20 19:53:17 · 62 阅读 · 0 评论 -
设计模式----组合模式(composite)
private String position = ""; private int salary = 0; public Corp(String name,String position,int salary){ this.name = name; this.position = position; this.salary = salary; } public String getInfo(){ String info =原创 2013-07-20 16:13:23 · 60 阅读 · 0 评论 -
设计模式----迭代器模式(Iterator)
public IProjectIterator iterator();}[/code]Project.java代码如下:[code="java"]package com.designPattern.iterator;import java.util.ArrayList;public class Project implements IProject{ private ArrayList projectList原创 2013-07-20 15:59:23 · 66 阅读 · 0 评论 -
设计模式----装饰者模式(decorator pattern)
ame);}[/code]FouthGradeSchoolReport.java代码如下:[code="java"]package com.designPattern.decorator;public class FouthGradeSchoolReport extends SchoolReport{ @Override public void report() { System.out.println("===原创 2013-07-15 09:08:41 · 67 阅读 · 0 评论 -
设计模式----命令模式(command pattern)
ic abstract class Group { public abstract void find(); public abstract void add(); public abstract void delete(); public abstract void change(); public abstract void plan(); }[/code]RequirementGroup.java代码如下:[code=&quo原创 2013-07-15 09:09:01 · 59 阅读 · 0 评论 -
设计模式----桥梁模式(bridge pattern)
ublic abstract void beProducted(); public abstract void beSelled();}[/code]House.java代码如下:[code="java"]package com.designPattern.bridge;public class House extends Product{ @Override public void beProducted() { Syst原创 2013-07-14 22:21:10 · 79 阅读 · 0 评论 -
策略模式(strategy pattern)
interface QuackBehavior { public void quack();}[/code][code="java"]package com.interfaces.impl;import com.interfaces.FlyBehavior;public class FlyNoWay implements FlyBehavior { @Override public void fly() { System.out原创 2012-09-06 15:39:05 · 55 阅读 · 0 评论 -
设计模式----中介者模式(demiator pattern)
AbstractMediator.java代码如下:[code="java"]package com.designPattern.mediator;public abstract class AbstractMediator { protected Purchase purchase; protected Sale sale; protected Stock sto...原创 2013-07-21 22:55:30 · 112 阅读 · 0 评论 -
设计模式----门面模式(facade)
LetterProcess.java代码如下:[code="java"]package com.designPattern.facade;public interface LetterProcess { public void writeContext(String context); public void fillEnvelope(String addre...原创 2013-07-14 13:30:45 · 69 阅读 · 0 评论 -
设计模式----抽象工厂模式(abstract factory pattern)
Human.java代码如下:[code="java"]package com.designPattern.abstractfactory;public interface Human { public void laugh(); public void cry(); public void talk(); public void se...原创 2013-07-13 23:09:10 · 92 阅读 · 0 评论 -
设计模式----工厂方法模式(factory method pattern)
给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实现了同一个接口Human.java为接口类,具体代码如下:[code="java"] package com.designPattern.factoryMethod; public interface Human { public void laugh(); public void cry()...原创 2013-07-10 22:19:23 · 90 阅读 · 0 评论 -
设计模式----多例模式(Multition)
Emperor.java 代码如下:[code="java"]package com.designPattern.multition;import java.util.ArrayList;import java.util.Random;/** * 两个皇帝的故事 * @author yangjianzhou * */public class Empe...原创 2013-07-02 22:47:06 · 147 阅读 · 0 评论 -
设计模式----单例模式(singleton)
单例就是唯一的意思。第一种单例实现方式(在多线程环境中存在不安全因素)SingletonPattern.java代码如下:[code="java"]package com.designPattern.singleton;/** * 单例模式的第一种实现方式 * @author yangjianzhou * */public class Singl...原创 2013-06-30 22:17:20 · 85 阅读 · 0 评论 -
设计模式----代理模式(proxy)
代理模式主要使用了java的多态,干活的是被代理类,代理类主要是接活,你让我干活,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,大家知根知底,你能做啥,我能做啥都清楚,实现同一个接口。接口类:KindWomen.java的代码如下:[code="java"]package com.designPattern.proxy;/**...原创 2013-06-30 22:02:54 · 94 阅读 · 0 评论 -
设计模式----策略模式(strategy)
本文参考别人设计模式的一个例子。关于诸葛亮的三个锦囊妙计的估计。IStrategy.java(三个妙计的接口类)的代码如下:[code="java"]package com.designPattern.strategy.interfaces;/** * 定义一个接口,这是诸葛亮老人家给赵云的三个妙计的接口 * @author yangjianzhou *...原创 2013-06-29 22:17:33 · 92 阅读 · 0 评论 -
装饰着模式(decorator)
一下代码就是运用了装饰者模式:[code="java"]package com.base;public abstract class Beverage { public String description = "Unknown Beverage"; public String getDescription(){ return description; }...原创 2012-09-09 21:51:44 · 83 阅读 · 0 评论 -
观察者模式(observer)
设计模式中观察者模式的实现有很多方式,这里列出两种实现方式1、主题实现Subject接口,观察者实现Observer、DisplayElement接口,其中,Subject、Observer、DisplayElement接口都是用户自定义的接口。[code="java"]package com.interfaces;public interface Subject { p...原创 2012-09-09 19:36:49 · 75 阅读 · 0 评论 -
设计模式----适配器模式(adapter)
IUserInfo.java代码如下:[code="java"]package com.designPattern.adapter;/** * 公司员工属性 * @author yangjianzhou * */public interface IUserInfo { public String getUserName(); public St...原创 2013-07-14 13:37:32 · 82 阅读 · 0 评论 -
设计模式----模板方法模式(template method pattern)
HummerModel.java代码如下:[code="java"] package com.designPattern.templateMethod; public abstract class HummerModel { protected abstract void start(); protected abstract void stop(); ...原创 2013-07-14 17:00:33 · 86 阅读 · 0 评论 -
设计模式----原型模式(prototype pattern)
AdvTemplate.java代码如下:[code="java"]package com.designPattern.prototype;public class AdvTemplate { private String advSubject = "title"; private String advContext = "context"; public...原创 2013-07-21 22:51:03 · 162 阅读 · 0 评论 -
设计模式----状态模式(state pattern)
LiftState.java代码如下:[code="java"] package com.designPattern.state;public abstract class LiftState { protected Context context; public abstract void open(); public abstract void ...原创 2013-07-21 22:48:45 · 113 阅读 · 0 评论 -
设计模式----访问者模式(visitor pattern)
IVisitor.java代码如下:[code="java"]package com.designPattern.visitor;public interface IVisitor { public void visit(CommonEmployee commonEmployee); public void visit(Manager manager);}...原创 2013-07-21 22:44:28 · 136 阅读 · 0 评论 -
设计模式----观察者模式(observer)
[code="java"] 这里采用两种方式实现观察者模式:第一种方式为完全自己写,第二种方式为实现JDK 的Observable和Observer接口[/code]第一种方式:Observer.java代码如下:[code="java"]package com.designPattern.abserver;public interface Obse...原创 2013-07-20 19:53:17 · 128 阅读 · 0 评论 -
设计模式----组合模式(composite)
该设计模式是以公司的组织结构为背景的Crop.java代码如下:[code="java"]package com.designPattern.composite;public abstract class Corp { private String name =""; private String position = ""; private...原创 2013-07-20 16:13:23 · 77 阅读 · 0 评论 -
设计模式----迭代器模式(Iterator)
IProject.java代码如下:[code="java"]package com.designPattern.iterator;public interface IProject { public void add(String name,int num,int cost); public String getProjectInfo(); publi...原创 2013-07-20 15:59:23 · 56 阅读 · 0 评论