AssembleComputer.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace TemplateMethodPattern
  7. {
  8. /// <summary>
  9. /// 组装电脑
  10. /// </summary>
  11. public abstract class AssembleComputer
  12. {
  13. /// <summary>
  14. /// 组装主机
  15. /// </summary>
  16. public abstract void BuildMainFramePart();
  17. /// <summary>
  18. /// 组装显示器
  19. /// </summary>
  20. public abstract void BuildScreenPart();
  21. /// <summary>
  22. /// 组装输入设备(键鼠)
  23. /// </summary>
  24. public abstract void BuildInputPart();
  25. /// <summary>
  26. /// 组装起来
  27. /// </summary>
  28. public void Assemble()
  29. {
  30. BuildMainFramePart();
  31. BuildScreenPart();
  32. BuildInputPart();
  33. }
  34. }
  35. /// <summary>
  36. /// 组装HP电脑
  37. /// </summary>
  38. public class AssembleHpComputer : AssembleComputer
  39. {
  40. public override void BuildMainFramePart()
  41. {
  42. Console.WriteLine("组装HP电脑的主板");
  43. }
  44. public override void BuildScreenPart()
  45. {
  46. Console.WriteLine("组装HP电脑的显示器");
  47. }
  48. public override void BuildInputPart()
  49. {
  50. Console.WriteLine("组装HP电脑的键盘鼠标");
  51. }
  52. }
  53. /// <summary>
  54. /// 组装HP电脑
  55. /// </summary>
  56. public class AssembleDellComputer : AssembleComputer
  57. {
  58. public override void BuildMainFramePart()
  59. {
  60. Console.WriteLine("组装Dell电脑的主板");
  61. }
  62. public override void BuildScreenPart()
  63. {
  64. Console.WriteLine("组装Dell电脑的显示器");
  65. }
  66. public override void BuildInputPart()
  67. {
  68. Console.WriteLine("组装Dell电脑的键盘鼠标");
  69. }
  70. }
  71. }