首页 > 代码库 > OO 编程基本功--(1)

OO 编程基本功--(1)

OO编程的基本功 (1)

本系列将浅谈一些OO编程语言的基本功。

编程的基本功决定了代码质量,编程思路以及编程水平,在工作中是重中之重。本文作为开篇,介绍一下OO编程中的基础与重点--保证抽象的一致性。

 

Code

什么是Code?把需求转为软件环境下可正确执行的软件的过程,称为编程。而实现这个编程的具体化流程,就叫做写code。在OO的编程世界里,写code既像写story,又像写一篇从抽象到具体的文章。

为了说明本文的主旨-保证抽象的一致性,我们就以code与Story和Code与写文章的对比作为本系列的开篇示例吧。

 

写code与story

 

一个好的实现:


 

 


左边的code反应了编程时应当把握的重心--抽象层次要一致(在本例中,抽象层次为domain级别)。不合格的code也许会写成类似这样:

 

 


可以看到,本次实现的code抽象层次参差不齐,显然CheckPassword的抽象层次要低于User.Pay,因为它是User.Login的具体实现;而User.Order.Status则为User.SaveOrder的具体实现。代码的抽象层次不一致,除了降低可读性,也带来了维护成本和扩展难度。

 

写code与写文章

保持抽象一致的代码实现:

 


抽象层次混乱的实现:

 


首先,登录的抽象层次是domain级别的。同一个方法里,暴露了Order的实现,付款的实现。抽象层次显然不一致,因此,这段代码是需要重构的。

 

结论:

可见,code与写文章的思路是一样的,都是从抽象到具体,抽象层次依次降低。在同一个函数里,代码调用的抽象层次应该是一致的。如果是线性的流程,按照从抽象到具体的步骤“翻译”即可;如果是可以并行的流程(不分先后顺序),还可以考虑是多线程来优化。

 

在OO的编程中,无论是类,接口,还是函数的设计,关键都在于,抽象的层次要始终保证一致。