函数的单一职责原则(SRP)
来源:互联网 发布:2016excel如何编程 编辑:程序博客网 时间:2024/05/22 15:07
结构化编程强调单一出口的原则,其目的在于增强函数流程的逻辑性。本身这个原则有些过于死板,但其保持代码逻辑性的目的是非常正确的。在面向对象设计,我们都知道要遵循单一职责原则(SRP),而函数也应遵循这一原则,以保证函数体逻辑的清晰并且高内聚。
以下示例中,UpdateValue函数与下面m_value的赋值语句造成了逻辑的分散:
当需要变更m_value的赋值逻辑时,往往会修改UpdateValue函数,而忽略了下面的赋值语句,这就会引起新的问题。顾此失彼嘛!
这种情况在代码维护时最容易引入。我们解Bug时,如果只是头疼医头,脚疼医脚,就容易留下一个个补丁,而每个补丁就可能是一个个逻辑碎片。
这样的分散的逻辑会加重维护的成本和风险。为了减少这种风险,首先在设计时和解Bug时要努力保持逻辑的一致性。遇到问题,不是将问题掩盖起来,而是要实实在在的解决它。不要形成破窗,使得风险不断累积。请参考<<如何有效地解Bug (RED方法) >>
在上图的例子中,应当尽量将下面的赋值语句移入UpdateValue函数中,这样将UpdateValue视为m_value的经纪人,统一管理m_value的值的设定。当然,也许m_value所依赖的条件可能分散于各处,这是可以提供较低层次的函数来形成m_value的赋值入口,比如setValue(…)。这就是setter/getter的概念了。
总之,当设计一个函数时就要明确它的职责,让相关的事务放到内部处理,而不是分散各处。当发现逻辑碎片产生时,应当及时加以清除,以免扩散到影响系统的维护。
转载请注明出处:http://blog.csdn.net/horkychen
- 函数的单一职责原则(SRP)
- 单一职责原则(SRP)
- 单一职责原则--SRP
- 单一职责原则SRP
- SRP单一职责原则
- 单一职责原则--SRP
- 单一职责原则--SRP
- SRP:单一职责原则
- 单一职责原则--SRP
- SRP:单一职责原则
- 单一职责原则SRP
- 单一职责原则(SRP)
- 单一职责原则SRP
- 单一职责原则 SRP
- 单一职责原则(SRP)
- 单一职责原则(SRP)
- 单一职责原则(SRP)
- 【8】SRP:单一职责原则
- PL/SQL程序块和结构 的说明
- Android下的多线程
- 如何配置VMware虚拟机网络环境全程图解
- Request.UrlReferrer为空的问题
- WSASend
- 函数的单一职责原则(SRP)
- ibatis学习(一)--ibatis介绍以及用例
- 一个关于Haskell不错的总结
- 产品简约之简单
- 动态设置全屏、取消全屏的方法,以及切换全屏保持内容位置不变的方法
- ibatis学习(二)--ibatis使用介绍
- ibatis学习(三)---ibatis与spring的整合
- Oracle正则表达式的用法
- 关于目标,关于选择