package Ġmedi ator Ċ Ċ /** Ċ Ġ* Ġ@ author Ġr ana ad ity a Ċ Ġ* Ċ Ġ* ĠMed iator ĠDesign ĠPattern Ċ Ġ* Ċ Ġ* ĠThis ĠDesign - Pattern Ġdefine Ġan Ġobject Ġthat Ġencaps ulates Ċ Ġ* Ġhow Ġa Ġset Ġof Ġobjects Ġinteract . ĠMed iator Ġprom otes Ġloose Ċ Ġ* Ġcoup ling Ġby Ġkeeping Ġobjects Ġfrom Ġreferring Ġto Ġeach Ġother Ċ Ġ* Ġexplicitly , Ġand Ġit Ġlets Ġyou Ġvary Ġtheir Ġinteraction Ġindependently . Ċ Ġ*/ Ċ abstract Ġclass ĠCol league ( medi ator : ĠMed iator ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġmedi ator : ĠMed iator Ġ= Ġmedi ator ĊĊĠĠĠ Ġfun Ġsend ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmedi ator . sendMessage ( message , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Mediator () Ġ= Ġmedi ator ĊĊĠĠĠ Ġabstract Ġfun Ġreceive ( message : ĠString ) Ċ Ċ } Ċ Ċ interface ĠMed iator Ġ{ ĊĠĠĠ Ġfun ĠsendMessage ( message : ĠString , Ġcol league : ĠCol league ) Ċ } Ċ Ċ class ĠApplication Mediator Ġ: ĠMed iator Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcol le ag ues Ġ= ĠArrayList < Col league >() ĊĊĠĠĠ Ġoverride Ġfun ĠsendMessage ( message : ĠString , Ġorigin ator : ĠCol league ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( col Ġin Ġcol le ag ues ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( col Ġ!= Ġorigin ator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcol . receive ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Col league ( col league : ĠCol league ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcol le ag ues . add ( col league ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠConcrete Col league ( medi ator : ĠMed iator ) Ġ: ĠCol league ( medi ator ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġreceive ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Col league Ġreceived : Ġ$ message ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠMobile Col league ( medi ator : ĠMed iator ) Ġ: ĠCol league ( medi ator ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġreceive ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Mobile Ġcol league Ġreceived : Ġ$ message ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġapplication Mediator Ġ= ĠApplication Mediator () ĊĠĠĠ Ġval Ġconcrete Col league Ġ= ĠConcrete Col league ( application Mediator ) ĊĠĠĠ Ġval Ġmobile Col league Ġ= ĠMobile Col league ( application Mediator ) ĊĊĠĠĠ Ġapplication Mediator . add Col league ( concrete Col league ) ĊĠĠĠ Ġapplication Mediator . add Col league ( mobile Col league ) ĊĊĠĠĠ Ġconcrete Col league . send (" hello Ġworld Ġfrom Ġmobile Ġcol league ") ĊĠĠĠ Ġmobile Col league . send (" hello Ġworld Ġfrom Ġmobile Ġcol league ") Ċ } ĊĊ