面向对象、设计原则、设计模式、编程规范、重构五者的关系

最经典的设计模式书籍是GoF的《设计模式》,他的中文全称叫《设计模式:可复用面向对象软件的基础》,为什么他在标题中会特意提到“面向对象”呢?

面向对象

针对面向对象,我们需要掌握7点。

  • 面向对象的四大特性:封装、抽象、继承、多态;
  • 面向对象和面向过程编程的区别与联系;
  • 面向对象分析、设计、编程;
  • 接口和抽象类的区别以及各自应用场景;
  • 基于接口而非基于实现编程的设计思想;
  • 多用组合少用继承的设计思想;
  • 面向过程的贫血模式和面向对象的充血模式;

设计原则

主要是几个比较常用的设计原则。

  • SOLID原则-SRP(single responsibility principle)单一职责原则;
  • SOLID原则-OCP(open closed principle)开闭原则;
  • SOLID原则-LSP(liskov substitution principle)里式替换原则;
  • SOLID原则-ISP(interface segregation principle)接口隔离原则;
  • SOLID原则-DIP(dependency inversion principle)依赖倒置原则;
  • DRY(don't repeat yourself)原则、KISS(keep it simple and stupid)原则、YAGNI(you ain't gonna need it)原则、LOD(law of demeter)原则;

设计模式

经典的设计模式有23种。它们又可以分为三大类:创建型、结构型、行为型。对于这23种设计模式,我们又可以按照类型区分是否常用。

创建型 

常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。

不常用的有:原型模式。

结构型

常用的有:代理模式、桥接模式、装饰器模式、适配器模式。

不常用的有:门面模式、组合模式、享元模式。

行为型

常用的有:观察者模式、模板模式、策略模式、责任链模式、迭代器模式、状态模式。

不常用的有:访问模式、备忘录模式、命令模式、解释器模式、中介模式。 

编程规范

编程规范主要解决的是代码的可读性问题。编码规范相对于设计原则、设计模式,它更加具体、更加偏重代码细节。即便你可能对设计原则不熟悉、对设计模式不了解,但你最起码要掌握基本的编码规范,比如如何给变量、类、函数命名,如何写代码注释,参数不能过多等等。

对于编码规范,可以参考的书籍有很多(比如《重构》、《代码大全》、《代码整洁之道》等)。

代码重构

对于重构,我们需要掌握以下几个知识点:

  • 重构的目的、对象、时机、方法;
  • 保证重构不出错的技术手段:单元测试和代码的可测试性;
  • 两种不同规模的重构:大重构(大规模高层次)和小重构(小规模低层次)

五者之间的联系

  • 面向对象编程因为其具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,是很多设计原则、设计模式等编程实现的基础。
  • 设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,“开闭原则”是很多设计模式(策略、模板等)的指导原则。
  • 设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。应用设计模式的主要目的是提高代码的可扩展性。从抽象程度上来讲,设计原则比设计模式更抽象。设计模式更加具体,更加可执行。
  • 编程规范主要是解决代码的可读性问题。编程规范相对于设计原则、设计模式,它更加具体、更加偏重代码细节、更加能落地。持续的小重构依赖的理论基础主要就是代码规范。
  • 重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编码规范这些理论。
posted @   sc-lixiaolong  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示