ÓÃÒ»¸öÖнé¶ÔÏóÀ´·âװһϵÁеĶÔÏó½»»¥¡£ÖнéÕßʹ¸÷¶ÔÏó²»ÐèÒªÏÔʾµØÏ໥ÒýÓ㬴ӶøÊ¹ÆäñîºÏËÉÉ¢£¬¶øÇÒ¿ÉÒÔ¶ÀÁ¢µØ¸Ä±äËûÃÇÖ®¼äµÄ½»»¥¡£
ÖнéÕßģʽÖеĽÇÉ«£º 2 ³éÏóͬÊÂÀà 3 ¾ßÌåͬÊÂÀà ×â¿Í£º 4 Öнé 5 ²âÊÔ´úÂë ÔËÐнá¹û£º ÓÅȱµã ȱµã ÊÊÓó¡¾° JDKÖеÄÖнéÕßģʽ£º
1. ³éÏóÖнéÕߣ¨MediatZ†·Ÿ"/kf/ware/vc/" target="_blank" class="keylink">vcik8L3N0cm9uZz6jurao0uXBy82sysK21M/ztb3W0L3p1d+21M/z1q685LXEvdO/2qGjPGJyIC8+DQoyLiA8c3Ryb25nPr7fzOXW0L3p1d+jqENvbmNyZXRlTWVkaWF0b3IpPC9zdHJvbmc+o7q2qNLls+nP89bQvenV37XEt723qKOsy/zQ6NKq1qq1wMv509C1xL7fzOXNrMrCwOCjrM2syrHQ6NKqtNO+38zltcTNrMrCwODEx8DvvdPK1c/7z6KjrLKix9LP8r7fzOW1xM2sysLA4Leiy83Qxc+ioaM8YnIgLz4NCjMuIDxzdHJvbmc+s+nP882sysLA4KOoQ29sbGVhZ3Vlo6k8L3N0cm9uZz48YnIgLz4NCjQuIDxzdHJvbmc+vt/M5c2sysLA4KOoQ29uY3JldGVDb2xsZWFndWWjqTwvc3Ryb25nPqO6w7+49r7fzOXNrMrCwOC2vNa70OjSqtaqtcDX1Ly6tcTQ0M6qvLS/yaOstavKx8v8w8e2vNDo0qrIz8q21tC96dXfoaM8L3A+DQo8cD6wuMD9MaO6PGJyIC8+DQq3v87d1+LB3tbQvem+zcrH0ru49rrcusO1xNbQvenEo8q9o6zX4r/N1rvWqrXA19S8urrN1tC96aOst7+2q9Ky1rvWqrXA19S8urrN1tC96aOstavKx9bQvemx2NDr1qq1wNfiv826zbe/tquho6Oo1NrO0sPHtcTJ+rvu1tC0prSms+Sz4tfFJmxkcXVvO9bQvenV3yZyZHF1bzujrLHIyOfX4re/oaLC8re/oaKz9rn9wfTRp6Gi1dK5pNf3oaLCw9POtci/ycTctrzQ6NKqxMTQqdbQvenV37XEsO/W+qGjo6k8YnIgLz4NCjEgs+nP89bQvenV3zwvcD4NCjxwcmUgY2xhc3M9"brush:java;">
public interface Mediator
{
void contact(String message, Person person);
}
public abstract class Person
{
protected String name;
protected Mediator mediator;
Person(String name, Mediator mediator)
{
this.name = name;
this.mediator = mediator;
}
}
·¿¶«£º
public class HouseOwner extends Person
{
HouseOwner(String name, Mediator mediator)
{
super(name, mediator);
}
public void contact(String message)
{
mediator.contact(message, this);
}
public void getMessage(String message)
{
System.out.println("HouseOwner : "+name+", Get Message: "+message);
}
}
public class Tenant extends Person
{
Tenant(String name, Mediator mediator)
{
super(name, mediator);
}
public void contact(String message)
{
mediator.contact(message, this);
}
public void getMessage(String message)
{
System.out.println("Tenant : "+name+", Get Message: "+message);
}
}
public class MediatorStructure implements Mediator
{
private HouseOwner houseOwner;
private Tenant tenant;
public HouseOwner getHouseOwner()
{
return houseOwner;
}
public void setHouseOwner(HouseOwner houseOwner)
{
this.houseOwner = houseOwner;
}
public Tenant getTenant()
{
return tenant;
}
public void setTenant(Tenant tenant)
{
this.tenant = tenant;
}
@Override
public void contact(String message, Person person)
{
if(person == houseOwner)
{
tenant.getMessage(message);
}
else
{
houseOwner.getMessage(message);
}
}
}
MediatorStructure mediator = new MediatorStructure();
HouseOwner houseOwner = new HouseOwner("qq",mediator);
Tenant tenant = new Tenant("jj",mediator);
mediator.setHouseOwner(houseOwner);
mediator.setTenant(tenant);
tenant.contact("I wanna a house");
houseOwner.contact("I have~");
HouseOwner : qq, Get Message: I wanna a house
Tenant : jj, Get Message: I have~
Óŵã
1. ÓÉÓÚÖнéÕß¶ÔÏó·â×°ÁËϵͳÖеĶÔÏóÖ®¼äµÄÏ໥¹ØÏµ£¬µ¼ÖÂÆä±äµÃ·Ç³£¸´ÔÓ£¬Ê¹µÃϵͳά»¤±È½ÏÀ§ÄÑ¡£ÖнéÕßÐèÒªÖªµÀÿ¸ö¶ÔÏóºÍËûÃÇÖ®¼äµÄ½»»¥Ï¸½Ú£¬Èç¹ûËü³öÎÊÌ⣬½«»áµ¼ÖÂÕû¸öϵͳ¶¼»á³öÏÖÎÊÌâ¡£ËùÒÔËü±È½ÏÈÝÒ×Ó¦ÓÃÒ²ºÜÈÝÒ×ÎóÓ᣹ʵ±ÏµÍ³ÖгöÏÖÁË“¶à¶Ô¶à”½»»¥¸´ÔӵĹØÏµÈºÊ±£¬Ç§Íò±ð¼Ç×ÅʹÓÃÖнéÕßģʽ£¬ÄãÊ×ÏÈÐèÒª×öµÄ¾ÍÊÇ·´Ë¼ÄãµÄϵͳÔÚÉè¼ÆÉÏÊDz»ÊǺÏÀí¡£ÔÙÕߣ¬ÔÚʵ¼Ê¹¤×÷ÖУ¬ÖнéÕßģʽҲ²¢²»¶à¼û¡£
1. ϵͳÖжÔÏóÖ®¼ä´æÔڱȽϸ´ÔÓµÄÒýÓùØÏµ£¬µ¼ÖÂËüÃÇÖ®¼äµÄÒÀÀµ¹ØÏµ½á¹¹»ìÂÒ¶øÇÒÄÑÒÔ¸´ÓøöÔÏó¡£
2. Ïëͨ¹ýÒ»¸öÖмäÀàÀ´·â×°¶à¸öÀàÖеÄÐÐΪ£¬¶øÓÖ²»ÏëÉú³ÉÌ«¶àµÄ×ÓÀà¡£
java.util.Timer
java.util.concurrent.Executor#execute()
java.util.concurrent.ExecutorService#submit()
java.lang.reflect.Method#invoke()