• C#设计模式六大原则之单一职责原则


    单一职责原则(Single Responsibility Principle)

    单一职责原则简单来说就是一个类只负责一项职责,一个类只负责一个功能领域中的相应职责。也就是实现高内聚、低耦合。单一职责原则能使用代码阅读简单,易于维护;扩展升级,减少修改,直接增加类;方便代码重用的。

    例如,

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. using System.Threading.Tasks;
    6. namespace ConsoleApplication
    7. {
    8. class Program
    9. {
    10. static void Main(string[] args)
    11. {
    12. {
    13. Animal animal = new AnimalChicken("鸡");
    14. animal.Eat();
    15. animal.Move();
    16. }
    17. {
    18. Animal animal = new AnimalCow("牛");
    19. animal.Eat();
    20. animal.Move();
    21. }
    22. Console.ReadKey();
    23. }
    24. }
    25. public abstract class Animal
    26. {
    27. protected string _Name = null;
    28. public Animal(string name)
    29. {
    30. this._Name = name;
    31. }
    32. public abstract void Eat();
    33. //{
    34. // if (this._Name.Equals("鸡"))
    35. // {
    36. // Console.WriteLine($"{this._Name} 吃玉米");
    37. //}
    38. // else if (this._Name.Equals("牛"))
    39. // {
    40. // Console.WriteLine($"{this._Name} 吃草");
    41. //}
    42. 。。
    43. //}
    44. public abstract void Move();
    45. //if (this._Name.Equals("鸡"))
    46. // {
    47. // Console.WriteLine($"{this._Name} 两脚行走");
    48. //}
    49. // else if (this._Name.Equals("牛"))
    50. // {
    51. // Console.WriteLine($"{this._Name} 四脚行走");
    52. //}
    53. }
    54. public class AnimalCow : Animal
    55. {
    56. public AnimalCow(string name) : base(name)
    57. {
    58. }
    59. public override void Eat()
    60. {
    61. Console.WriteLine($"{this._Name} 吃草");
    62. }
    63. public override void Move()
    64. {
    65. Console.WriteLine($"{this._Name} 四脚行走");
    66. }
    67. }
    68. public class AnimalChicken : Animal
    69. {
    70. public AnimalChicken(string name) : base(name)
    71. {
    72. }
    73. public override void Eat()
    74. {
    75. Console.WriteLine($"{this._Name} 吃玉米");
    76. }
    77. public override void Move()
    78. {
    79. Console.WriteLine($"{this._Name} 两脚行走");
    80. }
    81. }
    82. }

     

  • 相关阅读:
    【云原生】容器场景下的内核安全
    基于 CPU 在docker 中部署PaddleOCR
    mybatis的动态sql知识总结
    TCP/IP五层协议栈(1)
    Go 类型查询
    JavaScript基础
    GFS 分布式文件系统
    使用 CSS 的仿 GitHub 登录页面
    力扣(LeetCode)25. K 个一组翻转链表(C++)
    项目管理如何有效进行?看这篇就够了
  • 原文地址:https://blog.csdn.net/lwf3115841/article/details/133774337