ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Behavioralģʽ֮Mediatorģʽ
2015-11-21 00:58:46 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:2´Î
Tags£ºBehavioral ģʽ Mediator

1.Òâͼ

ÓÃÒ»¸öÖнé¶ÔÏóÀ´·âװһϵÁеĶÔÏó½»»¥¡£ÖнéÕßʹ¸÷¶ÔÏó²»ÐèÒªÏÔʽµØÏ໥ÒýÓ㬴ӶøÊ¹ÆäñîºÏËÉÉ¢£¬¶øÇÒ¿ÉÒÔ¶ÀÁ¢µØ¸Ä±äËûÃÇÖ®¼äµÄ½»»¥¡£

2.±ðÃû

ÎÞ

3.¶¯»ú

ÃæÏò¶ÔÏóÉè¼Æ¹ÄÀø½«ÐÐΪ·Ö²¼µ½¸÷¸ö¶ÔÏóÖС£ÕâÖÖ·Ö²¼¿ÉÄܻᵼÖ¶ÔÏó¼äÓÐÐí¶àÁ¬½Ó¡£ÔÚ×µÄÇé¿öÏ£¬Ã¿Ò»¸ö¶ÔÏó¶¼ÖªµÀÆäËûËùÓжÔÏó¡£

4.ÊÊÓÃÐÔ

ÒÔÏÂÇé¿öʹÓÃMediatorģʽ£º

Ò»×é¶ÔÏóÒÔ¶¨ÒåÁ¼ºÃµ«ÊǸ´Ôӵķ½Ê½½øÐÐͨÐÅ¡£²úÉúµÄÏ໥ÒÀÀµ¹ØÏµ½á¹¹»ìÂÒÇÒÄÑÒÔÀí½â¡£ Ò»¸ö¶ÔÏóÒýÓÃÆäËûºÜ¶à¶ÔÏó²¢ÇÒÖ±½ÓÓëÕâЩ¶ÔÏóͨÐÅ£¬µ¼ÖÂÄÑÒÔ¸´ÓøöÔÏó¡£ Ïë¶¨ÖÆÒ»¸ö·Ö²¼ÔÚ¶à¸öÀàÖеÄÐÐΪ£¬¶øÓÖ²»ÏëÉú³ÉÌ«¶àµÄ×ÓÀà¡£

5.½á¹¹

ÖнéÕßģʽҲÊÇÓÃÀ´½µµÍÀàÀàÖ®¼äµÄñîºÏµÄ£¬ÒòΪÈç¹ûÀàÀàÖ®¼äÓÐÒÀÀµ¹ØÏµµÄ»°£¬²»ÀûÓÚ¹¦ÄܵÄÍØÕ¹ºÍά»¤£¬ÒòΪֻҪÐÞ¸ÄÒ»¸ö¶ÔÏ󣬯äËü¹ØÁªµÄ¶ÔÏ󶼵ýøÐÐÐ޸ġ£Èç¹ûʹÓÃÖнéÕßģʽ£¬Ö»Ðè¹ØÐĺÍMediatorÀàµÄ¹ØÏµ£¬¾ßÌåÀàÀàÖ®¼äµÄ¹ØÏµ¼°µ÷¶È½»¸øMediator¾ÍÐУ¬ÕâÓеãÏñspringÈÝÆ÷µÄ×÷Óá£ÏÈ¿´¿´Í¼£º
Mediatorģʽ
UserÀàͳһ½Ó¿Ú£¬User1ºÍUser2·Ö±ðÊDz»Í¬µÄ¶ÔÏ󣬶þÕßÖ®¼äÓйØÁª£¬Èç¹û²»²ÉÓÃÖнéÕßģʽ£¬ÔòÐèÒª¶þÕßÏ໥³ÖÓÐÒýÓã¬ÕâÑù¶þÕßµÄñîºÏ¶ÈºÜ¸ß£¬ÎªÁ˽âñÒýÈëÁËMediatorÀ࣬Ìṩͳһ½Ó¿Ú£¬MyMediatorΪÆäʵÏÖÀ࣬ÀïÃæ³ÖÓÐUser1ºÍUser2µÄʵÀý£¬ÓÃÀ´ÊµÏÖ¶ÔUser1ºÍUser2µÄ¿ØÖÆ¡£ÕâÑùUser1ºÍUser2Á½¸ö¶ÔÏóÏ໥¶ÀÁ¢£¬ËûÃÇÖ»ÐèÒª±£³ÖºÃºÍMediatZ??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vctauvOS1xLnYz7W+zdDQo6zKo8/CtcTIq9PJTXlNZWRpYXRvcsDgwLTOrLuko6E8L3A+DQo8aDIgaWQ9"6´úÂëʾÀý">6.´úÂëʾÀý

ʵÏÖ´úÂ룺

public interface Mediator {
    public void createMediator();
    public void workAll();
}

ÖнéÀà

public class MyMediator implements Mediator {

    private User user1;
    private User user2;

    public User getUser1() {
        return user1;
    }

    public User getUser2() {
        return user2;
    }

    @Override
    public void createMediator() {
        user1 = new User1(this);
        user2 = new User2(this);
    }

    @Override
    public void workAll() {
        user1.work();
        user2.work();
    }
}

userÀà

public abstract class User {

private Mediator mediator;

public Mediator getMediator(){
    return mediator;
}

public User(Mediator mediator) {
    this.mediator = mediator;
}

public abstract void work();

}

public class User1 extends User {

public User1(Mediator mediator){
    super(mediator);
}

@Override
public void work() {
    System.out.println(user1 exe!);
}

}

public class User2 extends User {

public User2(Mediator mediator){
    super(mediator);
}

@Override
public void work() {
    System.out.println(user2 exe!);
}

}

 
 

²âÊÔÀࣺ

public class Test {

    public static void main(String[] args) {
        Mediator mediator = new MyMediator();
        mediator.createMediator();
        mediator.workAll();
    }
}

Êä³ö£º
user1 exe!
user2 exe!

7.Ïà¹ØÄ£Ê½

FacadeÓëÖнéÕߵIJ»Í¬Ö®´¦ÔÚÓÚËüÊǶÔÒ»¸ö¶ÔÏó×Ó ÏµÍ³½øÐгéÏ󣬴ӶøÌṩÁËÒ»¸ö¸üΪ·½±ãµÄ½Ó¿Ú¡£ËüµÄЭÒéÊǵ¥ÏòµÄ£¬¼´Facade¶ÔÏó¶ÔÕâ¸ö×ÓϵͳÀàÌá³öÇëÇ󣬵«·´Ö®Ôò²»ÐС£Ïà·´£¬MediatorÌṩÁ˸öColleague¶ÔÏó²»Ö§³Ö»ò²»ÄÜÖ§³ÖµÄЭ×÷ÐÐΪ£¬¶øÇÒЭÒéÊǶàÏòµÄ¡£ Colleague¿ÉʹÓÃObserverģʽÓëMediatorͨÐÅ¡£

?

¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºUVA 10515£¨Çóm^nµÄ¸öλÊý£© ÏÂһƪ£ºBehavioralģʽ֮Mementoģʽ

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ: