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的编程中,无论是类,接口,还是函数的设计,关键都在于,抽象的层次要始终保证一致。
OO 编程基本功--(1)
时间: 2024-10-11 04:33:27