下载 23种设计模式源码 :http://download.csdn.net/download/knight_black_bob/8936043
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
创建型模式,共五种:
工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式
结构型模式,共七种:
适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式
行为型模式,共十一种:
策略模式 模板方法模式 观察者模式 迭代子模式 责任链模式 命令模式
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package 设计模式.中介者模式; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月9日 下午3:41:11 * 类说明: */ public abstract class Agent { public abstract void action(Person sender); public abstract void addPerson(Person person); }
package 设计模式.中介者模式; import java.util.ArrayList; import java.util.List; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月24日 上午10:28:06 * des: */ public class ConcreteMediator extends Agent { private List<Person> list = new ArrayList<Person>(); @Override public void action(Person sender) { String msg = sender.getMsg(); for (Person p: list) { if(! sender.equals(p)){ if (sender.getAuthority()==1) { sender.sendMsg(sender,p); } else{ if (p.getAuthority()==1) { sender.sendMsg(sender,p); } } } } } @Override public void addPerson(Person person) { list.add(person); } }
package 设计模式.中介者模式; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月9日 下午3:38:27 * 类说明: */ public abstract class Person { private String name; private int authority; private Agent agent; private String msg; public int getAuthority() { return authority; } public void setAuthority(int authority) { this.authority = authority; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Agent getAgent() { return agent; } public Person(Agent agent) { this.agent = agent; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public abstract void sendMsg(Person self ,Person other); public void sendMsg(String msg){ this.msg = msg; this.agent.action(this); } }
package 设计模式.中介者模式; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月9日 下午3:39:39 * 类说明: */ public class LandlordWomen extends Person{ public String name ="房东" ; public LandlordWomen(Agent agent) { super(agent); setName(name); setAuthority(1); } @Override public void sendMsg(Person self, Person other) { System.out.println( self.getName() +" 对 " +other.getName()+" 说 " + getMsg() ); } }
package 设计模式.中介者模式; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月9日 下午3:40:26 * 类说明: */ public class RenterBoy extends Person{ public String name ="小明" ; public RenterBoy(Agent agent) { super(agent); setName(name); setAuthority(0); } @Override public void sendMsg(Person self, Person other) { System.out.println( self.getName() +" 对 " +other.getName()+" 说 " + getMsg() ); } }
package 设计模式.中介者模式; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月9日 下午3:40:26 * 类说明: */ public class RenterGirl extends Person{ public String name ="小红" ; public RenterGirl(Agent agent) { super(agent); setName(name); setAuthority(0); } @Override public void sendMsg(Person self, Person other) { System.out.println( self.getName() +" 对 " +other.getName()+" 说 " + getMsg() ); } }
package 设计模式.中介者模式; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年7月9日 下午2:01:34 * 类说明: */ public class MediatorTest { public static void main(String[] args) { Agent agent = new ConcreteMediator(); Person xiaoming = new RenterBoy(agent); Person xiaohong = new RenterGirl(agent); Person fangdong = new LandlordWomen(agent); agent.addPerson(fangdong); agent.addPerson(xiaoming); agent.addPerson(xiaohong); fangdong.sendMsg("我要出租 一间卧室"); xiaohong.sendMsg("我想我可以花费 500 元 出租 "); xiaoming.sendMsg("我想我可以花费 450 元 出租"); fangdong.sendMsg("我出租给小红了"); } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
设计模式之中介者模式java代码实现 设计模式之中介者模式
C#设计模式之中介者模式小例子
23种设计模式之中介者模式对中介者模式进行了简单的介绍,并附带了例子程序,和大家分享
Java设计模式之中介者模式__动力节点共6页.pdf.zip
从实际例子说明中介者模式,进而引出中介者模式的原理,使用情况和特点等
中介者模式(Mediator) 用意:用一个中介对象来封装一系列对象间的交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。
设计模式专题之(十七)中介者模式--设计模式中介者模式示例代码(python--c++)
设计模式之建造者模式代码示例,
设计模式 - 中介者模式
用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
c#设计模式之中介者,很好的。c#设计模式之中介者
创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) 结构模式: ...设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、...
这个http://blog.csdn.net/dawanganban/article/details/9990405博客中java设计模式的源代码。下载前请先看《设计模式——建造者模式》一文。
设计模式之观察者模式,通过这个实例你就掌握观察者模式的原理和用法,值得学习。
设计模式之观察者模式Java版本实现和UML类设计图
java23中常用设计模式之建造者模式,详细源码分析请见: http://blog.csdn.net/github_22022001/article/details/42120867