Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace satyra
- {
- public interface MessageStrategy
- {
- void sendmessage();
- }
- public abstract class AbstractStrategyFactory
- {
- public abstract MessageStrategy createStrategy(MessageBody mb);
- }
- public class MessageBody
- {
- Object payload;
- public Object getPayload()
- {
- return payload;
- }
- public void configure(Object obj)
- {
- payload = obj;
- }
- public void send(MessageStrategy ms)
- {
- ms.sendmessage();
- }
- }
- public class CMessageStrategy : MessageStrategy
- {
- public MessageBody body;
- public void sendmessage()
- {
- Object obj = body.getPayload();
- Console.WriteLine((string)obj);
- }
- public CMessageStrategy(MessageBody mb) { body = mb; }
- }
- public class DefaultFactory : AbstractStrategyFactory
- {
- private DefaultFactory() { ; }
- static DefaultFactory instance;
- public static AbstractStrategyFactory getInstance()
- {
- if (instance == null) instance = new DefaultFactory();
- return instance;
- }
- public override MessageStrategy createStrategy(MessageBody mb)
- {
- CMessageStrategy mg = new CMessageStrategy(mb);
- return mg;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- MessageBody mb = new MessageBody();
- mb.configure(" Hello world");
- AbstractStrategyFactory asf = DefaultFactory.getInstance();
- MessageStrategy strategy = asf.createStrategy(mb);
- mb.send(strategy);
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement