面向过程
面向过程是以过程(或方法)作为组织代码的基本单元。 面向过程过程风格的代码被组织成了一组方法集合及其数据结构,方法和数据结构的定义是分开的,是一种流程化的、面条式的编程风格,用一组指令顺序操作数据,来完成一项任务。适合于处理流程只有一条主线
面向对象特性
封装
隐藏数据或者数据访问保护,防止数据属性到处可以被修改,势必影响代码的可读性,可维护性,也会造成数据不一致;同时通过暴露有限的方法和属性,也能提高代码易用性
继承
代码复用,但是深度继承会造成代码可读性差,耦合严重,修改父类会影响子类
多态
子类可以替换父类,在实际的代码运行过程中,调用子类的方法实现。提高代码的可扩展性(继承接口)和复用性(将不同的实现类传递给函数参数),多态也是很多设计模式,设计原则,编程技巧的代码实现基础,比如策略模式、基于接口而非实现编程、依赖倒置原则、里氏替换原则、利用多态去掉冗长的if-else语句
抽象
隐藏复杂实现,调用者无需了解细节,也用来指导架构设计(基于抽象、开闭原则、代码解耦),通过函数包裹业务逻辑也是一种抽象
封装、继承、多态、抽象是设计原则、设计模式等编码实现的基础
面向对象设计原则
接口隔离
单一职责
依赖倒置
迪米特
开闭原则
DRY原则、KISS原则
设计原则是指导我们代码设计的一些经验总结,对于某些场景下,是否应该应用某种设计模式,具有知道意义