编程方法论:面向对象、设计原则、设计模式、编程规范、重构技巧
一、面向对象(可以看成一种设计思想)
因为面向对象编程具有丰富的特性,可以实现很多复杂的设计思路。所以是很多设计原则、设计模式等编码实现的基础。
面向对象编程中有两个非常重要、非常基础的概念,那就是类(class)和对象(object)。
1、面向对象编程语言 和 面向对象编程 的区别:
- 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。
- 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。
2、面向对象编程主要知识点:
- 面向对象的四大特性:封装、抽象、继承、多态
- 面向对象编程与面向过程编程的区别和联系
- 面向对象分析、面向对象设计、面向对象编程
- 接口和抽象类的区别以及各自的应用场景
- 基于接口而非实现编程的设计思想
- 多用组合少用继承的设计思想
- 面向过程的贫血模型和面向对象的充血模型
3、面向对象分析,面向对象设计,面向对象编程,正好是面向对象软件开发要经历的三个阶段。
面向对象分析和面向对象设计:就是围绕着对象或类来做需求分析和设计的。
- 分析:做什么;
- 设计:怎么做;
- 编程:将分析和设计的的结果翻译成代码的过程。
二、设计原则
设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有指导意义。比如,“开闭原则”是很多设计模式(策略、模板等)的指导原则。
常用的几个原则:
- SOLID 原则 -SRP 单一职责原则
- SOLID 原则 -OCP 开闭原则
- SOLID 原则 -LSP 里式替换原则
- SOLID 原则 -ISP 接口隔离原则
- SOLID 原则 -DIP 依赖倒置原则
- DRY 原则、KISS 原则、YAGNI 原则、LOD 法则
三、设计模式
大部分设计模式要解决的都是代码的可扩展性问题。是软件开发过程中设计问题的解决方案或者设计思路。相比于设计原则更为具体。
经典的设计模式有 23 种,这些设计模式可以分为三大类:
1、创建型 :主要解决“对象的创建”问题
常用的有:
- 单例模式
- 工厂模式(工厂方法和抽象工厂)
- 建造者模式
不常用的有:
- 原型模式。
2、结构型:主要解决“类或对象的组合或组装”问题
常用的有:
- 代理模式
- 桥接模式
- 装饰者模式
- 适配器模式
不常用的有:
- 门面模式
- 组合模式
- 享元模式
3、行为型:主要解决的就是“类或对象之间的交互”问题
常用的有:
- 观察者模式
- 模板模式
- 策略模式
- 职责链模式
- 迭代器模式
- 状态模式
不常用的有:
- 访问者模式
- 备忘录模式
- 命令模式
- 解释器模式
- 中介模式
四、代码重构
重构作为保持代码质量不下降的有效手段,利用的就是面向对象、设计原则、设计模式、编码规范这些理论。
1、重构的目的(why)、对象(what)、时机(when)、方法(how);
2、保证重构不出错的技术手段:单元测试和代码的可测试性;
3、两种不同规模的重构:大重构(大规模高层次)和小重构(小规模低层次)。
五、编程规范
代码实现的小细节。