¡¶JAVAÓëģʽ¡·µÚ26Ìì¨Dµ÷Í£Õßģʽ (¶þ)

2014-11-24 08:31:42 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 1
tor mediator) {
super(mediator);
}
/**
* ʾÒâ·½·¨£¬Ö´ÐÐijЩ²Ù×÷
*/
public void operation(){
//ÔÚÐèÒª¸úÆäËûͬÊÂͨÐŵÄʱºò£¬Í¨Öªµ÷Í£Õß¶ÔÏó
getMediator().changed(this);
}
}
public class ConcreteColleagueA extends Colleague {

public ConcreteColleagueA(Mediator mediator) {
super(mediator);
}
/**
* ʾÒâ·½·¨£¬Ö´ÐÐijЩ²Ù×÷
*/
public void operation(){
//ÔÚÐèÒª¸úÆäËûͬÊÂͨÐŵÄʱºò£¬Í¨Öªµ÷Í£Õß¶ÔÏó
getMediator().changed(this);
}
}

[java]
public class ConcreteColleagueB extends Colleague {

public ConcreteColleagueB(Mediator mediator) {
super(mediator);
}
/**
* ʾÒâ·½·¨£¬Ö´ÐÐijЩ²Ù×÷
*/
public void operation(){
//ÔÚÐèÒª¸úÆäËûͬÊÂͨÐŵÄʱºò£¬Í¨Öªµ÷Í£Õß¶ÔÏó
getMediator().changed(this);
}
}
public class ConcreteColleagueB extends Colleague {

public ConcreteColleagueB(Mediator mediator) {
super(mediator);
}
/**
* ʾÒâ·½·¨£¬Ö´ÐÐijЩ²Ù×÷
*/
public void operation(){
//ÔÚÐèÒª¸úÆäËûͬÊÂͨÐŵÄʱºò£¬Í¨Öªµ÷Í£Õß¶ÔÏó
getMediator().changed(this);
}
}

ʹÓõçÄÔÀ´¿´µçÓ°
¡¡¡¡ÔÚÈÕ³£Éú»îÖУ¬ÎÒÃǾ­³£Ê¹ÓõçÄÔÀ´¿´µçÓ°£¬°ÑÕâ¸ö¹ý³ÌÃèÊö³öÀ´£¬¼ò»¯ºó¼Ù¶¨»áÓÐÈçϵĽ»»¥¹ý³Ì£º

¡¡¡¡£¨1£©Ê×ÏÈÊǹâÇýÒª¶ÁÈ¡¹âÅÌÉϵÄÊý¾Ý£¬È»ºó¸æËßÖ÷°å£¬ËüµÄ״̬¸Ä±äÁË¡£

¡¡¡¡£¨2£©Ö÷°åÈ¥µÃµ½¹âÇýµÄÊý¾Ý£¬°ÑÕâЩÊý¾Ý½»¸øCPU½øÐзÖÎö´¦Àí¡£

¡¡¡¡£¨3£©CPU´¦ÀíÍêºó£¬°ÑÊý¾Ý·Ö³ÉÁËÊÓÆµÊý¾ÝºÍÒôƵÊý¾Ý£¬Í¨ÖªÖ÷°å£¬Ëü´¦ÀíÍêÁË¡£

¡¡¡¡£¨4£©Ö÷°åÈ¥µÃµ½CPU´¦Àí¹ýºóµÄÊý¾Ý£¬·Ö±ð°ÑÊý¾Ý½»¸øÏÔ¿¨ºÍÉù¿¨£¬È¥ÏÔʾ³öÊÓÆµºÍ·¢³öÉùÒô¡£

¡¡¡¡ÒªÊ¹Óõ÷Í£ÕßģʽÀ´ÊµÏÖʾÀý£¬ÄǾÍ񻂿·Ö³öͬʶÔÏóºÍµ÷Í£Õß¶ÔÏ󡣺ÜÃ÷ÏÔ£¬Ö÷°åÊǵ÷Í£Õߣ¬¶ø¹âÇý¡¢Éù¿¨¡¢CPU¡¢ÏÔ¿¨µÈÅä¼þ£¬¶¼ÊÇ×÷ΪͬʶÔÏó¡£

\

¡¡¡¡Ô´´úÂë
¡¡¡¡³éÏóͬÊÂÀà

[java]
package com.bankht.Mediator;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:37:23
*
* @Àà˵Ã÷ £º³éÏóͬÊÂÀà
*/
public abstract class Colleague {
// ³ÖÓÐÒ»¸öµ÷Í£Õß¶ÔÏó
private Mediator mediator;

/**
* ¹¹Ô캯Êý
*/
public Colleague(Mediator mediator) {
this.mediator = mediator;
}

/**
* »ñÈ¡µ±Ç°Í¬ÊÂÀà¶ÔÓ¦µÄµ÷Í£Õß¶ÔÏó
*/
public Mediator getMediator() {
return mediator;
}
}
package com.bankht.Mediator;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:37:23
*
* @Àà˵Ã÷ £º³éÏóͬÊÂÀà
*/
public abstract class Colleague {
// ³ÖÓÐÒ»¸öµ÷Í£Õß¶ÔÏó
private Mediator mediator;

/**
* ¹¹Ô캯Êý
*/
public Colleague(Mediator mediator) {
this.mediator = mediator;
}

/**
* »ñÈ¡µ±Ç°Í¬ÊÂÀà¶ÔÓ¦µÄµ÷Í£Õß¶ÔÏó
*/
public Mediator getMediator() {
return mediator;
}
}

¡¡¡¡Í¬ÊÂÀࡪ¡ª¹âÇý

[java]
package com.bankht.Mediator;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:37:44
*
* @Àà˵Ã÷ £ºÍ¬ÊÂÀࡪ¡ª¹âÇý
*/
public class CDDriver extends Colleague {
// ¹âÇý¶ÁÈ¡³öÀ´µÄÊý¾Ý
private String data = "";

/**
* ¹¹Ô캯Êý
*/
public CDDriver(Mediator mediator) {
super(mediator);
}

/**
* »ñÈ¡¹âÅ̶ÁÈ¡³öÀ´µÄÊý¾Ý
*/
public String getData() {
return data;
}

/**
* ¶ÁÈ¡¹âÅÌ
*/
public void readCD() {
// ¶ººÅǰÊÇÊÓÆµÏÔʾµÄÊý¾Ý£¬¶ººÅºóÊÇÉùÒô
this.data = "One Piece,º£ÔôÍõÎÒµ±¶¨ÁË";
// ֪ͨÖ÷°å£¬×Ô¼ºµÄ״̬·¢ÉúÁ˸ıä
getMediator().changed(this);
}
}
package com.bankht.Mediator;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:37:44
*
* @Àà˵Ã÷ £ºÍ¬ÊÂÀࡪ¡ª¹âÇý
*/
public class CDDriver extends Colleague {
// ¹âÇý¶ÁÈ¡³öÀ´µÄÊý¾Ý
private String data = "";

/**
* ¹¹Ô캯Êý
*/
public CDDriver(Mediator mediator) {
super(mediator);
}

/**
* »ñÈ¡¹âÅ̶ÁÈ¡³öÀ´µÄÊý¾Ý
*/
public String getData() {
return data;
}

/**
* ¶ÁÈ¡¹âÅÌ
*/
public void readCD() {
// ¶ººÅǰÊÇÊÓÆµÏÔʾµÄÊý¾Ý£¬¶ººÅºóÊÇÉùÒô
this.data = "One Piece,º£ÔôÍõÎÒµ±¶¨ÁË";
// ֪ͨÖ÷°å£¬×Ô¼ºµÄ״̬·¢ÉúÁ˸ıä
getMediator().changed(this);
}
}

¡¡¡¡Í¬ÊÂÀࡪ¡ªCPU

[java]
package com.bankht.Mediator;

/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-7-3 ÏÂÎç03:38:17
*
* @Àà˵Ã÷ £ºÍ¬ÊÂÀࡪ¡ªCPU
*/
public class CPU extends Colle