主页

索引

模块索引

搜索页面

面向过程编程

  • POP: Process Oriented Programming

相较于面向对象编程以类为组织代码的基本单元,面向过程编程则是以过程(或方法)作为组织代码的基本单元。它最主要的特点就是数据和方法相分离。相较于面向对象编程语言,面向过程编程语言最大的特点就是不支持丰富的面向对象编程特性,比如继承、多态、封装。

面向对象编程相比起面向过程编程的优势主要有三个:

1. 对于大规模复杂程序的开发,程序的处理流程并非单一的一条主线,而是错综复杂的网状结构。
    面向对象编程比起面向过程编程,更能应对这种复杂类型的程序开发。
2. 面向对象编程相比面向过程编程,具有更加丰富的特性(封装、抽象、继承、多态)。
    利用这些特性编写出来的代码,更加易扩展、易复用、易维护。
3. 从编程语言跟机器打交道的方式的演进规律中,我们可以总结出:
    面向对象编程语言比起面向过程编程语言,更加人性化、更加高级、更加智能。

看似面向对象,实际是面向过程:

1. 滥用 getter、setter 方法
2. Constants 类、Utils 类的设计问题
3. 基于贫血模型的开发模式

贫血模型(Anemic Domain Model 由MatinFowler 提出)又称为失血模型,是指 domain object 仅有属性的 getter/setter 方法的纯数据类,将所有类的行为放到 service 层。原文他是这么说的 “By pulling all the behavior out into services, however, you essentially end up with Transaction Scripts, and thus lose the advantages that the domain model can bring. ” —— https://martinfowler.com/bliki/AnemicDomainModel.html

主页

索引

模块索引

搜索页面