-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathProgram.cs
60 lines (48 loc) · 1.01 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
namespace MediatorPattern
{
interface IChatRoomMediator
{
void ShowMessage(User user, string message);
}
//Mediator
class ChatRoom : IChatRoomMediator
{
public void ShowMessage(User user, string message)
{
Console.WriteLine("{0} [{1}]:{2}", DateTime.Now.ToString("MMMM dd, H:mm"), user.GetName(), message);
}
}
class User
{
private string mName;
private IChatRoomMediator mChatRoom;
public User(string name, IChatRoomMediator chatroom)
{
mChatRoom = chatroom;
mName = name;
}
public string GetName()
{
return mName;
}
public void Send(string message)
{
mChatRoom.ShowMessage(this, message);
}
}
class Program
{
static void Main(string[] args)
{
var mediator = new ChatRoom();
var john = new User("John", mediator);
var jane = new User("Jane", mediator);
john.Send("Hi there!");
jane.Send("Hey!");
//April 14, 20:05[John]:Hi there!
//April 14, 20:05[Jane]:Hey!
Console.ReadLine();
}
}
}