软件开发中的抽象思想

软件开发中复杂的问题怎么解决?可以分2个步骤

1. 简单化

利用抽象把复杂的问题简单化,注意抽象时分层次的

如何抽象:抓关键步骤,关键功能,并给这些关键步骤和功能起一个好名字。

                  搭框架。抽象时要分清层级粒度,忽略该忽略的细节.

                  如同人体血管,树枝分叉。有主干有分支。

2.具体化

把抽象后简单的骨架代码具体化,逐层细化,逐层抽象 ,逐层细化,逐层抽象

如何具体:如同素描先画骨 后画皮,实现时一定要解决技术难点,否则无法落实

注意经过以上2个步骤这个问题最后的实现细节任然是复杂的,只是框架脉络清晰。你不可能把本身复杂的的系统实现的简单化

如果抽象的好的话 你的系统最终实现效果看起来像这样

否则就是像这样

两则虽然最终实现的功能或满足的需求是一样的,但是水平确实有高低之分。

你希望你写的软件在别人的眼中是这样的吗?

 3. 如何具体实现抽象

为什么变量名称很重要? 名称也能抽象

如果 用c=ab 表示一个物理公式,你可能不知道是什么意思

但是如果写成F=ma 的话,你一定有所熟悉。

对程序也一样对变量的命名和物理公式变量命名一样,第一需要尽量约定俗称,不能标新立异,第二 需要简单明了

对变量的命名也是对 要解决问题的抽象,也能简化程序理解

使用有意义的函数和变量名字。如果你的函数和变量的名字,能够切实的描述它们的逻辑,那么你就不需要写注释来解释它在干什么。

提取函数也是抽象

如果你仔细观察代码,就会发现其实里面有很多的重复。这些常用的代码,不管它有多短,提取出去做成函数,都可能是会有好处的。有些帮助函数也许就只有两行,然而它们却能大大简化主要函数里面的逻辑。

抽象就是还未实现的功能

抽象的本质就是隐藏细节,隐藏复杂度,简化接口,便于理解主干,并不能解决细节的复杂性

接口定义顶层规范

抽象类作为基础实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值