java設計模式第8彈 中介者模式

2021-07-05 06:43:35 字數 1705 閱讀 7517

一、中介者模式定義

mediator 中介者,或者叫仲裁者,類似房屋的中介,比如演播室的主播和嘉賓,主播在說話的時候,嘉賓不能打斷他,主播停止說話的時候嘉賓才能說話,主播則可以隨時說話,這裡還有乙個中間人: 

1.主播對中介者說,節目開始了,我要說話了 

2.中介者看看嘉賓是不是在說話,如果是在說話,讓他停止,讓主播說,如果嘉賓沒在說話,讓主播說 

3.嘉賓告訴中介者說我要說話,中介者看看主播是否在說話,如果在說話,就告訴嘉賓說主播在說,你等等再說;如果主播不在說話,則讓嘉賓說 

/***

* 嘉賓類,私有屬性標記是否空閒 私有屬性中介者,與中介者產生關係

* * @author 素劍步青塵

* */

public class guest

public boolean isfree()

public void setfree(boolean free)

//通過中介者開始說話

public void speak()

//通過中介者停止說話

public void stop()

}

public class mediator 

public void reggust(guest guest)

//中介代替主持人說話,如果嘉賓在說話,打斷他,主持人說,主持人的狀態變為忙碌

public void anchorspeak()

system.out.println("anchor is speaking......");

anchor.setfree(true);

} //中介代替嘉賓說話,如果主持人空閒,嘉賓才能說話,嘉賓狀態變為忙碌,

//否則,不讓嘉賓說話,主持人繼續說

public void guestspeak()else

}//中介代替嘉賓停止說話,設定狀態為空閒

public void gueststop()

//中介代替主持人停止說話,設定狀態為空閒

public void anchorstop()

}

/* 

* 主持人類,有乙個狀態,是否處於空閒狀態

* 有乙個終結者的私有屬性,和中介者產生關係

*/

public class anchor

public boolean isfree()

public void setfree(boolean free)

//通過中介者開始說話

public void speak()

//通過中介者停止說話

public void stop()

}

public class testdemo 

}

執行結果:

guest stop speaking now...

anchor is speaking......

guest is speaking...

anchor stop speaking now...

guest is speaking...

guest stop speaking now...

anchor is speaking......

java設計模式 中介者模式

大話設計模式 第二十五章 package ch25 public abstract class country package ch25 public abstract class unitednations package ch25 public class irag extends countr...

Java設計模式 中介者模式

中介者模式在程式 api 介面呼叫複雜化的時候可以使用中介模式對程式 api 介面進行管理 中介者介面 public inte ce manager 中介者實現類 public class manager implements manager override public void call st...

java設計模式之中介者模式

1.mediator 此抽象類用來定義中介者,同時要定義乙個介面方法,以便和其他同事物件進行互動 package com.mediator.example public abstract class mediator 2.mediatorimpl 此類用來實現mediator,然後此類要保留同事物件...