Patterns in SOME –Mediator
2007-03-01 14:03
429 查看
[align=left][/align]
[align=left]Code in C#:[/align]
[align=left] [/align]
[align=left]namespace Mediator_DesignPattern[/align]
[align=left]{[/align]
[align=left] using System;[/align]
[align=left] [/align]
[align=left] class Mediator [/align]
[align=left] {[/align]
[align=left] private DataProviderColleague dataProvider;[/align]
[align=left] private DataConsumerColleague dataConsumer;[/align]
[align=left] public void IntroduceColleagues(DataProviderColleague c1, DataConsumerColleague c2)[/align]
[align=left] {[/align]
[align=left] dataProvider = c1;[/align]
[align=left] dataConsumer = c2; [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public void DataChanged()[/align]
[align=left] {[/align]
[align=left] int i = dataProvider.MyData;[/align]
[align=left] dataConsumer.NewValue(i);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class DataConsumerColleague [/align]
[align=left] {[/align]
[align=left] public void NewValue(int i)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("New value {0}", i);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class DataProviderColleague[/align]
[align=left] {[/align]
[align=left] private Mediator mediator;[/align]
[align=left] private int iMyData=0;[/align]
[align=left] public int MyData [/align]
[align=left] {[/align]
[align=left] get [/align]
[align=left] {[/align]
[align=left] return iMyData;[/align]
[align=left] }[/align]
[align=left] set [/align]
[align=left] {[/align]
[align=left] iMyData = value;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] public DataProviderColleague(Mediator m)[/align]
[align=left] {[/align]
[align=left] mediator = m;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public void ChangeData()[/align]
[align=left] {[/align]
[align=left] iMyData = 403;[/align]
[align=left] [/align]
[align=left] // Inform mediator that I have changed the data[/align]
[align=left] if (mediator != null)[/align]
[align=left] mediator.DataChanged(); [/align]
[align=left] } [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for Client.[/align]
[align=left] ///</summary>[/align]
[align=left] public class Client[/align]
[align=left] {[/align]
[align=left] public static int Main(string[] args)[/align]
[align=left] { [/align]
[align=left] Mediator m = new Mediator();[/align]
[align=left] DataProviderColleague c1 = new DataProviderColleague(m);[/align]
[align=left] DataConsumerColleague c2 = new DataConsumerColleague();[/align]
[align=left] m.IntroduceColleagues(c1,c2);[/align]
[align=left] [/align]
[align=left] c1.ChangeData();[/align]
[align=left] [/align]
[align=left] return 0;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]Code in SOME:[/align]
CMediator -> CDataProviderColleague[_dataProvider],->CDataConsumerColleague[_dataConsumer]
IntroduceColleagues(CDataProviderColleague, CDataConsumerColleague)
DataChanged()
CDataConsumerColleague
NewValue(int)
CDataProviderColleague ->CMediator[_mediator]
int MyData
(CMediator) /* means the parameter will be assigned to _mediator*/
ChangeData()
CClient
main
CClient.main
{
CMediator m.();
CDataProviderColleague c1.(_mediator=m);
CDataConsumerColleague c2.();
m.IntroduceColleagues(_dataProvider = c1,_dataConsumer = c2);
c1.ChangeData()
{
<% if(mediator != null )%>
<%{ %>
_mediator.DataChanged()
{
int i = dataProvider.MyData;
_dataConsumer.NewValue(i)
{
<% Console.WriteLine("New value {0}", i); %>
};
};
<%} %>
};
}
[align=left]Code in C#:[/align]
[align=left] [/align]
[align=left]namespace Mediator_DesignPattern[/align]
[align=left]{[/align]
[align=left] using System;[/align]
[align=left] [/align]
[align=left] class Mediator [/align]
[align=left] {[/align]
[align=left] private DataProviderColleague dataProvider;[/align]
[align=left] private DataConsumerColleague dataConsumer;[/align]
[align=left] public void IntroduceColleagues(DataProviderColleague c1, DataConsumerColleague c2)[/align]
[align=left] {[/align]
[align=left] dataProvider = c1;[/align]
[align=left] dataConsumer = c2; [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public void DataChanged()[/align]
[align=left] {[/align]
[align=left] int i = dataProvider.MyData;[/align]
[align=left] dataConsumer.NewValue(i);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class DataConsumerColleague [/align]
[align=left] {[/align]
[align=left] public void NewValue(int i)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine("New value {0}", i);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] class DataProviderColleague[/align]
[align=left] {[/align]
[align=left] private Mediator mediator;[/align]
[align=left] private int iMyData=0;[/align]
[align=left] public int MyData [/align]
[align=left] {[/align]
[align=left] get [/align]
[align=left] {[/align]
[align=left] return iMyData;[/align]
[align=left] }[/align]
[align=left] set [/align]
[align=left] {[/align]
[align=left] iMyData = value;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] public DataProviderColleague(Mediator m)[/align]
[align=left] {[/align]
[align=left] mediator = m;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] public void ChangeData()[/align]
[align=left] {[/align]
[align=left] iMyData = 403;[/align]
[align=left] [/align]
[align=left] // Inform mediator that I have changed the data[/align]
[align=left] if (mediator != null)[/align]
[align=left] mediator.DataChanged(); [/align]
[align=left] } [/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] /// Summary description for Client.[/align]
[align=left] ///</summary>[/align]
[align=left] public class Client[/align]
[align=left] {[/align]
[align=left] public static int Main(string[] args)[/align]
[align=left] { [/align]
[align=left] Mediator m = new Mediator();[/align]
[align=left] DataProviderColleague c1 = new DataProviderColleague(m);[/align]
[align=left] DataConsumerColleague c2 = new DataConsumerColleague();[/align]
[align=left] m.IntroduceColleagues(c1,c2);[/align]
[align=left] [/align]
[align=left] c1.ChangeData();[/align]
[align=left] [/align]
[align=left] return 0;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]Code in SOME:[/align]
CMediator -> CDataProviderColleague[_dataProvider],->CDataConsumerColleague[_dataConsumer]
IntroduceColleagues(CDataProviderColleague, CDataConsumerColleague)
DataChanged()
CDataConsumerColleague
NewValue(int)
CDataProviderColleague ->CMediator[_mediator]
int MyData
(CMediator) /* means the parameter will be assigned to _mediator*/
ChangeData()
CClient
main
CClient.main
{
CMediator m.();
CDataProviderColleague c1.(_mediator=m);
CDataConsumerColleague c2.();
m.IntroduceColleagues(_dataProvider = c1,_dataConsumer = c2);
c1.ChangeData()
{
<% if(mediator != null )%>
<%{ %>
_mediator.DataChanged()
{
int i = dataProvider.MyData;
_dataConsumer.NewValue(i)
{
<% Console.WriteLine("New value {0}", i); %>
};
};
<%} %>
};
}
相关文章推荐
- Patterns in SOME –Observer
- Patterns in SOME –Flyweight
- Patterns in SOME –Builder
- use AWK to extract some lines according to some patterns in file
- Patterns in SOME –Memento
- Patterns in SOME –Facade
- Patterns in SOME –Abstract Factory
- Patterns in SOME –Iterator
- Patterns in SOME –Decorator
- Patterns in SOME –Factory Method
- Patterns in SOME – Command
- Patterns in SOME –Composite
- Patterns in SOME –Chain Of Responsibility
- Patterns in SOME –Bridge
- Patterns in SOME - Visitor
- Patterns in SOME –Template Method
- Patterns in SOME –Adapter (class)
- Patterns in SOME - Strategy
- Patterns in SOME –Interpreter
- Patterns in SOME –Singleton