Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace DelegateKavrami
- {
- class Program
- {
- static void Main(string[] args)
- {
- new MyTest().Run();
- Console.Read();
- }
- }
- public class MyTest
- {
- public void Run()
- {
- MyMessageProcessor myProcessor = new MyMessageProcessor();
- myProcessor.Register(0, Sms);
- myProcessor.Register(1, Mms);
- myProcessor.ProcessMessage(1, Message.Sms);
- }
- public void Sms(Message message)
- {
- Console.WriteLine("Sms olarak gönderilen mesaj");
- }
- void Mms(Message message)
- {
- Console.WriteLine("Mms olarak gönderilen mesaj:");
- }
- }
- public class MyMessageProcessor
- {
- public delegate void ProcessMessageDelegate(Message message);
- Dictionary methods;
- public void Register(int messageType,
- ProcessMessageDelegate processMessage)
- {
- methods[messageType] = processMessage;
- }
- public void ProcessMessage(int messageType, Message message)
- {
- if (methods.ContainsKey(messageType))
- {
- methods[messageType](message);
- }
- }
- }
- public enum Message
- {
- Sms,Mms
- }
- }
- public enum messageType
- {
- Sms, Mms
- }
- public class Message
- {
- public MessageType MessageType { get; get; }
- public string Data {get; set; } // assume data to be processed
- }
- interface IHandler
- {
- void Process(Message message);
- }
- class SmsHander : IHandler
- {
- void Process(Message message)
- {}
- }
- class MmsHander : IHandler
- {
- void Process(Message message)
- {}
- }
- class MessageProcessor
- {
- private Dictionary<MessageType, IHandler>
- handlers = new Dictionary<MessageType, IHandler>()
- {
- { MessageType.Sms, new SmsHander() },
- { MessageType.Mms, new MmsHander() },
- };
- public void Process(Message message)
- {
- handlers[message.MessageType].Process(message);
- }
- }
- var processor = new Processor();
- processor.Process(message);
- Dictionary methods = new Dictionary();
Add Comment
Please, Sign In to add comment