设计模式--设计模式的知识点梳理

学习设计模式,首先要弄明白我们什么要学习它,其次需要呀弄明白地就是它包含了哪些知识点。

 

设计模式学习地知识点包含5个部分,面向对象、设计原则、设计模式、编码规范以代码重构。

面向对象

现在,主流的编程范式或者是编程风格有三种,它们分别是面向过程、面向对象和函数式编程。面向对象这种风格又是其中最主流的。现在比较流程的编程语言都是面向对象编程语言,大部分项目也是基于面向对象编程风格开发的。面向对象编程因为具有丰富的特性(封装、抽象、继承、多态),可以实现很多复杂的设计思路,很多设计原则,设计模式编码实现的基础。

面向对象需要掌握地7个大的知识点

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

 

设计原则

设计原则是知道我们代码设计的一些经验。设计原则这块儿的知识有一个非常大的特点,那就是这些原则听起来比较抽象,定义描述都比较模糊,不同的人有不同的解读。所以对于每一个设计原则,我们需要了解它涉及的初衷能解决哪些编程问题有哪些应用场景。只有这样,我们才能在项目中灵活的应用这些原则。

对于这一部分内容,需要掌握的知识点如下:

  • SOLID原则 -- SRP 单一职责原则
  • SOLID原则 -- OCP开闭原则
  • SOLID原则 --  LSP里氏替换原则
  • SOLID原则 -- ISP 接口隔离原则
  • SOLID原则 -- DIP 依赖倒置原则
  • DRY原则 、KISS原则、YAGNI原则 、LOD原则

 

设计模式

设计模式是针对软件开发过程中经常遇到的一些设计问题,总结出的一套解决方案或者设计思想。大部分设计模式都是解决代码的扩展性问题。

经典的设计模式有23种,可以分为三大类:创建型、结构型、行为型

1、创建型

常用:单列模式、工厂模式(工厂方法和抽象工厂)、建造者模式

不常用:原型模式

2、结构型

常用:代理模式、桥接模式、装饰者模式、适配器模式

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

3、行为型

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

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

 

常用的14种

 

编码规范

编码规范主要解决的问题是代码的可读性问题。编码规范相对于设计原则、设计模式、更加具体、更加偏重代码细节、更加能落地。持续的小重构依赖的理论基础就是编程规范

 

代码重构

在软件开发中,只要软件在不停的迭代,就没有一劳永逸的设计。随着需求的的变化,代码的堆积,原有的设计必定存在这样或者那样的问题。针对这样的问题,我们就需要对代码进行重构。持续重构是保证代码质量不下降的有效手段。

而重构的工具就是我们前面罗列到的那些面向对象设计思想,设计原则、设计模式、代码规范。设计模式可以提高代码的可扩展性,但过度使用,也会增加代码的复杂度。所以在开发初期,除非必须使用,一定不要过度设计,应用复杂的设计模式。而是在出现问题的时候,我们在针对问题,应用原则和模式进行重构。这样我们就可以避免过度设计

代码重构需要掌握以下知识点:

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

 

这五者之间地关系。

  • 面向对象因为具有丰富地特性(封装、抽象、继承、多态),可以实现很多复杂地设计思路、是很多设计原则、设计模式等编码实现地基础
  • 设计原则是指导我们代码设计地一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,"开闭原则"是很多设计模式(策略、模板等)的指导原则。
  • 设计模式是针对软件开发中经常遇到的问题,总结出来的一套解决方案或者设计思路,应用设计模式的主要目的是提高d暧昧的可扩展性。从抽象的程度上讲,设计原则比设计模式更抽象,设计模式更加的具体,更加的可行。
  • 编程规范主要是解决代码的可读性问题。编码规范相对设计原则,设计模式,更加具体,更加注重代码细节,更加能落地。
  • 重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编程规范这些理论。

实际上,面向对象,设计原则,设计模式,编程规范,代码重构,这五者都是保持或者提高代码质量的方法论。本质都是服务于编写高质量的代码者一件事。

总结:

本篇主要是做一个学习大纲,以便更好地针对性地学习,能够让自己更高效更快地理解和掌握这些知识点。

 

参考:参考设计模式之美--王争

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值