一个方法实现一个单一的功能:one method one function
来源:互联网 发布:盟军敢死队1 for mac 编辑:程序博客网 时间:2024/05/17 05:09
一个方法实现一个单一的功能?one method one function
大部分情况下,这都是可以实现的!每个方法代码行基本上不要超过一屏,特殊情况例外。这玩意真是只可意会,不可言传。你看着办吧。
1 帮助你理清思路,锻炼逻辑思维能力。
想象一下,如果你能将一个大的功能分拆成一堆方法,每个方法都各司其职,是不是能够锻炼你的大脑?一个大的难题都是可以分拆成更小的单元,然后加以实现。
拆分成方法以后,重用代码、重用逻辑就更容易实现了,让你少写一些逻辑相同但代码不同的函数。
再拔高一下,想象一下,假设你是一位软件架构师专家,你是不是需要很熟练的将一个超级复杂的系统,拆分成一个个小功能,再将每个小功能,拆分成一个个类和方法。
如果说,你没有大局观加上逻辑推理,那你估计要冒虚汗了。
从工程学角度上说,软件工程还不够成熟,而那些建筑学、机械制造这些工程都已经是非常成熟了。软件和机械制造很类似。
将一个功能比作造一辆家用汽车,那么汽车的每一个零件就像是一个方法、一个函数。
假设你写了一个方法,好比是一个螺丝帽,写的好的话,标准制定好,让大家都知道这个螺丝的存在,那么整个车都可以用这一个螺丝,这样是不是节省了很多时间?
如果你要调整螺丝的色泽、粗细等,只要整车都适用,那么,修改螺丝帽也是一件很容易的事情。
这也同样锻炼你的统筹规划、设计的能力,容易培养你的大局观!
如果你对整辆车的各个零件都无比了解、熟悉!那么你的思路自然更清晰,它可以让你站的更高,看的更远。
可以让你有能力做更加有挑战性的工作。比如这时,让你设计制造一辆跑车,再让你制造卡车、飞机......也许这一切都不是梦。
总结:没有清晰的思路,没有逻辑推理,你还写什么代码啊,^_^
2 封装模块化
将一个个相对独立的函数、类做一个封装,相对独立,留有接口。这样的好处更是显而易见!
在以前,你会经常看见汽车大修,发动机都拆开了修理。以前能找到故障汽车毛病出在哪都是个大麻烦。但是现在呢?现在你见过汽车大修吗?
现在讲究封装模块化。汽车哪个地方坏了,直接换模块。比如发动机坏了,拆了换新的。
模块化把复杂的逻辑封装起来,将来要更换哪个模块,哪个模块需要优化,哪个地方出问题了都将一目了然。
人类正是靠着这种功能拆分、模块封装手段,来做出规模更大的事情。
人的大脑记忆是非常有限的,一般就7个以内,再多就需要借助工具、图像了。
为了记住更多的东西,拥有更大的能力,人类发现了一个类似框架的东西!
自古以来,人类凭借丰富的经验,将复杂的细节做一系列的模块封装,忽略细节,然后建立了无数个框架。
这些框架经过了无数实践的考验,不断的优化。好的框架能够帮助你快速做出快速准确的决策,让你站的更高,看的更深、更远。
当然也有更多的框架,因为过时、不够成熟而丢弃。
软件也一样,将函数方法等很多细节封装起来,变成类、包,再组装成模块,这些模块就构成了一个或多个框架,万变不离其宗!
统筹设计将一个大的任务做工作分解,一直分解到每一个函数!
那么,你觉得,你是不是先从最小处开始做起,一个函数实现一个功能!
- 一个方法实现一个单一的功能:one method one function
- 【ONE,一个】Android app的实现
- 一个填充函数法(filled function method)的AMPL实现
- Function One
- jquery one方法实现
- ONE 一个 隐私保护声明
- ONE · 一个简单更新
- ONE·一个简单API
- hibernate------one-to-one(一个表的主键由另一个表的主键决定)
- Hibernate 和 MySQL配合的一个one-to-one 关键字教训
- 栈的实现(功能未完整版1)version one
- 一个完整的hibernate的one-to-many的例子
- 一个完整的hibernate的one-to-many的例子
- 一个完整的hibernate的one-to-many的例子
- 一个完整的hibernate的one-to-many的例子
- 用一个月时间看完《Expert one on one Oracle》
- jQuery one 特定事件绑定一个一次性的事件
- 一个牛逼哄哄的Android框架One
- 系统调用实现原理
- error MSB8011: 未能注册输出。请尝试启用“逐用户重定向”,或者使用提升的权限从命令提示符处注册该组件
- jQuery closest() 方法
- 未来还有一颗心
- 世纪互联运营的Microsoft Azure正式支持FreeBSD虚拟机镜像
- 一个方法实现一个单一的功能:one method one function
- Android中Spinner二级联动动态加载数据
- Java 中基本类型和字符串之间的转换
- 数据库设计三大范式
- 单链表之冒泡排序
- 一个tomcat有几个jvm
- 删除数据表内容的操作(如何让auto_increment重新开始计数)
- 多线程同步的五种方法
- fork创建子进程利用pipe管道通信