Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace satyra
  7. {
  8. public interface MessageStrategy
  9. {
  10. void sendmessage();
  11. }
  12.  
  13. public abstract class AbstractStrategyFactory
  14. {
  15. public abstract MessageStrategy createStrategy(MessageBody mb);
  16. }
  17.  
  18. public class MessageBody
  19. {
  20. Object payload;
  21. public Object getPayload()
  22. {
  23. return payload;
  24. }
  25. public void configure(Object obj)
  26. {
  27. payload = obj;
  28. }
  29. public void send(MessageStrategy ms)
  30. {
  31. ms.sendmessage();
  32. }
  33. }
  34.  
  35. public class CMessageStrategy : MessageStrategy
  36. {
  37. public MessageBody body;
  38. public void sendmessage()
  39. {
  40. Object obj = body.getPayload();
  41. Console.WriteLine((string)obj);
  42. }
  43. public CMessageStrategy(MessageBody mb) { body = mb; }
  44. }
  45.  
  46. public class DefaultFactory : AbstractStrategyFactory
  47. {
  48. private DefaultFactory() { ; }
  49. static DefaultFactory instance;
  50. public static AbstractStrategyFactory getInstance()
  51. {
  52. if (instance == null) instance = new DefaultFactory();
  53. return instance;
  54. }
  55. public override MessageStrategy createStrategy(MessageBody mb)
  56. {
  57. CMessageStrategy mg = new CMessageStrategy(mb);
  58. return mg;
  59. }
  60. }
  61.  
  62. class Program
  63. {
  64. static void Main(string[] args)
  65. {
  66. MessageBody mb = new MessageBody();
  67. mb.configure(" Hello world");
  68. AbstractStrategyFactory asf = DefaultFactory.getInstance();
  69. MessageStrategy strategy = asf.createStrategy(mb);
  70. mb.send(strategy);
  71.  
  72. Console.ReadLine();
  73. }
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement