考试网 >> IT认证 >> 水平 >> 系统工程师 >> 由模式谈面向对象的基本原则之单一职责原则

由模式谈面向对象的基本原则之单一职责原则

发布时间:2006-06-28 01:41     点击:
分页:[1] 2 3 4  下一页

  所谓单一职责原则,就是就一个类而言,应该仅有一个引起它的变化的原因。换句话说,一个类的功能要单一,只做与它相关的事情。

  这个原则是最简单、最容易理解,却是最不容易做到的事情。这个原则的道理谁都理解,可是在实践中呢?

  我们来看一个例子:

if(action.equals("load")&&tab.equals("1")){

request.setAttribute("tabId",tab);

form.set("tabId",tab);

speciManager.loadIncrement(actionForm, request, tab);

}

if(action.equals("Save")&&tab.equals("1")){

System.out.println("inter increment save action");

……

request.setAttribute("tabId",tab);

}

if(action.equals("load")&&tab.equals("2")){

request.setAttribute("tabId",tab);

form.set("tabId",tab);

speciManager.loadMeasureMent(actionForm, request, tab);

}

if(action.equals("Save")&&tab.equals("2")){

……

System.out.println("inter increment save action");

speciManager.loadIncrement(actionForm, request, tab);

form.set("tabId",tab);

request.setAttribute("tabId",tab);

}

  一看就知道这个类做了太多的工作,它既要load一个tab为1的页面和一个tab为2的页面;又要save一个tab为1页面和一个tab为2的页面。这个类的代码我只截取了里面很少的一部分,绝大部分的代码我都省略掉了。这段代码写到最后是越来越混乱,直到最后失败。

  对照着这个例子,我们再来分析一下为什么要遵守单一职责愿则:

  第一、有助于我们分析和编码的思路的清晰。当你的代码里有了三层或以上的if语句或for语句的嵌套的时候,你不要跟我说,你已经把问题分析得很清楚了。多层嵌套的if或for语句只能说明你还没有把问题分析清楚。

分页:[1] 2 3 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有