/** * 中介者模式 * @author TMAC-J * 研究了這麼多設計模式,覺得無非就是幾點: * 1.若兩個類有耦合關係,設立一個中間類,處理兩個類的關係,把兩個類的耦合降低 * 2.面向介面 * 3.在設計時就應當想到如果以後有修改,不要去修改原有類,而要設計成能新添加類去做新功能的架構... ...
/** * 中介者模式 * @author TMAC-J * 研究了這麼多設計模式,覺得無非就是幾點: * 1.若兩個類有耦合關係,設立一個中間類,處理兩個類的關係,把兩個類的耦合降低 * 2.面向介面 * 3.在設計時就應當想到如果以後有修改,不要去修改原有類,而要設計成能新添加類去做新功能的架構 * 中介者模式用於兩個相互通信的類,相當於一個中間層 * 這裡模擬A變數始終是B變數的10倍 */ public class MediatorPattern { interface IMediator{ void aToB(AColleague a,AColleague b); void bToA(AColleague b,AColleague a); } abstract class AColleague{ private int variable; private IMediator mediator; public int getVariable() { return variable; } public IMediator getMediator() { return mediator; } public void setMediator(IMediator mediator) { this.mediator = mediator; } //這裡可以寫一個回調,當variable改變時,回調那個方法,我太懶就不寫了 public void setVariable(int variable) { this.variable = variable; } } public class Mediator implements IMediator{ @Override public void aToB(AColleague a, AColleague b) { b.setVariable(a.getVariable()*10); } @Override public void bToA(AColleague b, AColleague a) { a.setVariable(b.getVariable()*10); } } }