- 浏览: 428509 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
AbstractMediator.java代码如下:
Mediator.java代码如下:
AbstractColleague.java代码如下:
Purchase.java代码如下:
Sale.java代码如下:
Stock.java代码如下:
Client.java代码如下:
运行结果如下:
package com.designPattern.mediator; public abstract class AbstractMediator { protected Purchase purchase; protected Sale sale; protected Stock stock; public AbstractMediator(){ purchase = new Purchase(this); sale = new Sale(this); stock = new Stock(this); } public abstract void execute(String str,Object ...objects); }
Mediator.java代码如下:
package com.designPattern.mediator; public class Mediator extends AbstractMediator{ @Override public void execute(String str, Object... objects) { if(str.equals("purchase")){ this.buyComputer((Integer)objects[0]); }else if(str.equals("sale.sell")){ this.sellComputer((Integer)objects[0]); }else if(str.equals("sale.offsell")){ this.offSell(); }else if(str.equals("stock.clear")){ this.clearStock(); } } private void buyComputer(int number){ int saleStatus = super.sale.getSaleStatus(); if(saleStatus>80){ System.out.println("采购IBM电脑:"+number+"台"); super.stock.increase(number); }else{ int buyNumber = number/2; System.out.println("采购IBM电脑:"+buyNumber+"台"); } } private void sellComputer(int number){ if(super.stock.getStockNumber()<number){ super.purchase.buyIBMComputer(number); } super.stock.decrease(number); } private void offSell(){ System.out.println("折价销售IBM电脑"+stock.getStockNumber()+"台"); } private void clearStock(){ super.sale.offSale(); super.purchase.refuseBuyIBM(); } }
AbstractColleague.java代码如下:
package com.designPattern.mediator; public abstract class AbstractColleague { protected AbstractMediator mediator ; public AbstractColleague(AbstractMediator mediator){ this.mediator = mediator; } }
Purchase.java代码如下:
package com.designPattern.mediator; public class Purchase extends AbstractColleague{ public Purchase(AbstractMediator mediator) { super(mediator); } public void buyIBMComputer(int number){ super.mediator.execute("purchase", number); } public void refuseBuyIBM(){ System.out.println("不再采购IBM电脑"); } }
Sale.java代码如下:
package com.designPattern.mediator; import java.util.Random; public class Sale extends AbstractColleague{ public Sale(AbstractMediator mediator) { super(mediator); } public void sellIBMComputer(int number){ super.mediator.execute("sale.sell", number); System.out.println("销售IBM电脑"+number+"台"); } public int getSaleStatus(){ Random rand = new Random(System.currentTimeMillis()); int saleStatus = rand.nextInt(100); System.out.println("IBM电脑的销售量为:"+saleStatus); return saleStatus; } public void offSale(){ super.mediator.execute("sale.offsell"); } }
Stock.java代码如下:
package com.designPattern.mediator; public class Stock extends AbstractColleague{ public Stock(AbstractMediator mediator) { super(mediator); } private static int COMPUTER_NUMBER = 100; public void increase(int number){ COMPUTER_NUMBER = COMPUTER_NUMBER+number; System.out.println("库存数量为:"+COMPUTER_NUMBER); } public void decrease(int number){ COMPUTER_NUMBER = COMPUTER_NUMBER-number; System.out.println("库存数量为:"+COMPUTER_NUMBER); } public int getStockNumber(){ return COMPUTER_NUMBER; } public void clearStock(){ System.out.println("清理存货数量为:"+COMPUTER_NUMBER); super.mediator.execute("stock.clear"); } }
Client.java代码如下:
package com.designPattern.mediator; public class Client { public static void main(String[] args) { AbstractMediator mediator = new Mediator(); System.out.println("---------采购人员采购电脑---------"); Purchase purchase = new Purchase(mediator); purchase.buyIBMComputer(100); System.out.println("----------销售人员销售IBM电脑-----------"); Sale sale = new Sale(mediator); sale.sellIBMComputer(1); System.out.println("-----------库房管理人员清库处理--------------"); Stock stock = new Stock(mediator); stock.clearStock(); } }
运行结果如下:
---------采购人员采购电脑--------- IBM电脑的销售量为:27 采购IBM电脑:50台 ----------销售人员销售IBM电脑----------- 库存数量为:99 销售IBM电脑1台 -----------库房管理人员清库处理-------------- 清理存货数量为:99 折价销售IBM电脑99台 不再采购IBM电脑
发表评论
-
设计模式----原型模式(prototype pattern)
2013-07-21 22:51 637AdvTemplate.java代码如下: package ... -
设计模式----状态模式(state pattern)
2013-07-21 22:48 1203LiftState.java代码如下: package ... -
设计模式----访问者模式(visitor pattern)
2013-07-21 22:44 973IVisitor.java代码如下: package co ... -
设计模式----观察者模式(observer)
2013-07-20 19:53 1071这里采用两种方式实现观察者模式:第一种方式为完全自己写, ... -
设计模式----组合模式(composite)
2013-07-20 16:13 929该设计模式是以公司的组织结构为背景的 Crop.java代码 ... -
设计模式----迭代器模式(Iterator)
2013-07-20 15:59 917IProject.java代码如下: package co ... -
设计模式----装饰者模式(decorator pattern)
2013-07-15 09:08 1027SchoolReport.java代码如下: packag ... -
设计模式----命令模式(command pattern)
2013-07-15 09:09 956Group.java代码如下: pa ... -
设计模式----桥梁模式(bridge pattern)
2013-07-14 22:21 1182Product.java代码如下: package com ... -
设计模式----模板方法模式(template method pattern)
2013-07-14 17:00 1147HummerModel.java代码如下: packag ... -
设计模式----适配器模式(adapter)
2013-07-14 13:37 865IUserInfo.java代码如下: package c ... -
设计模式----门面模式(facade)
2013-07-14 13:30 946LetterProcess.java代码如下 ... -
设计模式----抽象工厂模式(abstract factory pattern)
2013-07-13 23:09 912Human.java代码如下: package com. ... -
设计模式----工厂方法模式(factory method pattern)
2013-07-10 22:19 1081给定一个工厂类,用这个工厂类造出一堆对象来,这些对象对应的类实 ... -
设计模式----多例模式(Multition)
2013-07-02 22:47 1033Emperor.java 代码如下: ... -
设计模式----单例模式(singleton)
2013-06-30 22:17 756单例就是唯一的意思。 第一种单例实现方式(在多线程环境中存在 ... -
设计模式----代理模式(proxy)
2013-06-30 22:02 959代理模式主要使用了java ... -
设计模式----策略模式(strategy)
2013-06-29 22:17 1088本文参考别人设计模式的一个例子。 关于诸葛亮的三个锦囊妙计的 ... -
装饰着模式(decorator)
2012-09-09 21:51 1008一下代码就是运用了装饰者模式: package com.ba ... -
观察者模式(observer)
2012-09-09 19:36 942设计模式中观察者模式的实现有很多方式,这里列出两种实现方式 1 ...
相关推荐
设计模式(22)-Strategy Pattern 设计模式(21)-Template Method Pattern 设计模式(20)-Visitor Pattern 设计模式(19)-Observer Pattern 设计模式(18)-Command Pattern 设计模式(17)-Chain of ...
代理模式(Proxy Pattern)、单例模式(Singleton Pattern)、工厂方法模式...Pattern)、中介者模式(Mediator Pattern)、解释器模式(Interpreter Pattern)、享元模式(Flyweight Pattern)、备忘录模式(Memento ...
桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件工程中被广泛...对于初学者来说,通过学习和实践桥接模式,可以提高软件设计能力,更好地理解面向对象设计原则。
遍历聚合对象中的元素——迭代器模式(四) 遍历聚合对象中的元素——迭代器模式(五) 遍历聚合对象中的元素——迭代器模式(六) 中介者模式-Mediator Pattern 协调多个对象之间的交互——中介者模式(一) 协调多...
中介者模式(Mediator Pattern)是一种行为设计模式,它允许对象之间通过中介者对象进行通信,从而避免对象之间的直接耦合。中介者模式将对象之间的复杂关系转化为中介者和对象之间的简单关系,从而提高了系统的灵活...
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...
**中介者模式(Mediator Pattern)**是一种行为设计模式,它定义了一个用来封装一系列对象交互的接口。在软件工程中,当多个对象之间存在复杂的相互依赖关系时,这种模式可以帮助我们降低系统的耦合度,使得各个对象...
行为型模式关注对象之间的通信,包括命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。命令模式将请求封装成对象,以便使用不同的请求、...
在“设计模式-DesignPattern.zip”压缩包中,我们看到的是一个名为“DesignPattern-master”的项目,这通常是一个关于设计模式的学习或示例代码仓库。 设计模式通常分为三类:创建型模式、结构型模式和行为型模式。...
组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...
包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...
"Design Pattern"这个压缩包文件很可能包含了一些关于设计模式的实例和文档,特别是提到了"design-pattern\doc\api"目录下的"index.html",这可能是一个交互式的文档或者教程,通过实例帮助开发者更好地理解设计模式...
设计模式 - Singleton Pattern 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。这就是 Singleton Pattern 的设计动机。 Singleton ...
行为型模式涉及对象之间的责任分配,如命令模式、迭代器模式、观察者模式、职责链模式、策略模式、状态模式、模板方法模式和访问者模式。这些模式有助于更好地管理和组织代码中的算法和行为。例如,观察者模式是一种...
共有11种,分别是策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式和解释器模式。 在本资源中,我们还对每种设计模式进行了详细的介绍和分析...
**设计模式之中介者模式(Mediator Pattern)** 在软件工程中,设计模式是一种解决常见问题的经验总结,它提供了一种可复用的解决方案。中介者模式是行为设计模式之一,其主要目的是降低多个对象之间的复杂性,通过...
在这个"Go设计模式实例-go-design-pattern.zip"压缩包中,我们可以找到一个名为"go-design-pattern-master"的项目,它很可能是包含多个Go语言实现的设计模式示例。这个项目可以帮助我们理解如何在Go中应用常见的设计...
- 中介者模式(Mediator):定义一个中介对象来简化原本复杂的对象交互。 - 观察者模式(Observer):定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 -...
- **中介者**(Mediator):用一个中介对象来封装一系列的对象交互。 - **备忘录**(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 - **观察者**(Observer):定义对象间...