public
interface 
IComponentMediator Pattern
{
        void
SetState(object
state);    }    public
class 
Component1 : IComponent    {        #region IComponent Members        public
void 
SetState(object 
state)        {            //Do Nothing            throw
new 
NotImplementedException();        }        #endregion    }    public
class 
Component2 : IComponent    {        #region IComponent Members        public
void 
SetState(object 
state)        {            //Do nothing            throw
new 
NotImplementedException();        }        #endregion    }    public
class 
Mediator // Mediages the common tasks    {        public
IComponent Component1 { get;
set; }        public
IComponent Component2 { get;
set; }        public
void 
ChageState(object 
state)set
; }        public
IComponent Component2 { get;
set; }        {            this.Component1.SetState(state);            this.Component2.SetState(state);        }    }Here you can see the mediator Registers all the Components within it and then calls its method when required.