page contents

C#程序设计的6大原则

本文讲述了C#程序设计的6大原则!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-10-OURjvrUd634e0b094205a.png本文讲述了C#程序设计的6大原则!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

设计模式:
面向对象语言开发过程中,遇到各种场景和问题,解决方案和思路沉淀下来,就是设计模式。俗称,套路

设计模式的六大原则:
理解为面向对象语言开发过程中推荐的一些指导性的原则,通俗的说是套路的 套路。

讲一个小故事,记住这6大原则的名字:一个叫【迪米特】的人,【开闭】口,说【里氏】是,【单一】的一个单亲妈妈;【依赖倒置(导致)】他找各种【接口(借口)隔离】事实的行为。

1.单一职责原则(Single Reponsibility Principle,简称:SRP)
一个类只负责一件事。一个方法也应该只做一件事。
好处:

  1. 阅读简单,易于维护
  2. 扩展升级,减少修改,直接增加类
  3. 代码重用

建议:简单-稳定-强大

成本:类变多了,上端需要了解更多的类。衡量着使用,如果类相对稳定,而且逻辑简单扩展少,违背单一原则也没关系。

          一个类,不要让它太累了。如果不同的职责,总是一起变化的,这种一定要分开。

  • 方法层面:方法多个分支,还可能扩展,最好拆分为多个方法
  • 接口层面:也会把不同的功能接口,独立开来
  • 类库层面:把项目拆分为多个类库,重用-方便维护
  • 项目:很多人都是一个web来解决所有问题。

2.里氏替换原则(Liskov Substitution Principle,简称:LSP。)

任何使用基类的地方,都可以透明的使用其子类。

继承:通过继承,子类拥有父类的一切属性和行为,任何父类出现的地方,都可以用子类代替

  1. 子类必须完全实现父类有的方法,如果子类没有父类的某项东西,就断掉继承
  2. 子类可以有父类没有的东西,所以子类出现的地方,不一定能用父类来替代
  3. 透明,就是安全,父类的东西换成子类后不影响程序

                   1>建议:父类已经实现的东西,不要去隐藏(使用new);

                   2>父类已经实现的东西,如果想修改,使用virtual+override,避免踩雷

变量,参数,属性,字段,最好都是基于基类的。

3.迪米特法则(Law of Demeter,简称:LOD ):最少知道原则,一个对象应该对其他对象保持最少的了解。

面向对象的单位是类,类与类之间交互,组成功能模块,产生系统。

追求:高内聚,低耦合。通俗理解为高度封装,类与类之间减少依赖。

4.依赖倒置原则(Dependence Inversion Principle,简称:DIP)

  1. 定义:高层模块不应该依赖底层模块,二者应该通过抽象依赖。通俗讲,依赖抽象,而不是依赖细节,面向抽象编程。23种设计模式,80%跟这个有关
  • 依赖细节:程序写死了,不方便扩展
  • 依赖抽象:更具有通用性,而且具备扩展性。系统架构基于抽象来搭建的,会更稳定、更具备扩展性。
  • 面向抽象编程:底层模块尽量都有抽象类/接口,声明参数/变量/属性的时候,尽量都是 接口/抽象类

注意:如果项目不考虑扩展,确实不需要依赖倒置。

5.接口隔离原则(Interface Segregation Principe,简称:ISP)

定义:

  1.  客户端不应该依赖,它不需要的接口
  2.  通俗的理解,一个类对另外一个类的依赖应该建立在最小接口上
  3.  通俗的理解,实现一个接口的时候,只需要自己必须的功能

6.开闭原则(Open Closed Principle,简称:OCP)

  1. 对扩展开放,对修改封闭。通俗的讲,如果有功能扩展变化的需求,希望是增加类而不是修改
  2. 原则的原则,五大原则是手段,这个是目标。这个只是告诉你目标,实现靠其他原则。
  • 因为修改会影响原有功能,引入错误。增加类就不会影响原有的东西

总结:如果要升级一个功能,优先级排序

修改(修改类)---增加方法(修改类)---增加类---新增加新的dll

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等

attachments-2022-10-kwwbZ9WG6347756cbf77c.jpg

  • 发表于 2022-10-18 10:10
  • 阅读 ( 412 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章