我的分层

最近的几天在看关于软件设计中的分层的概念,从我的角度,分层的概念就是层次分明,职责清楚.

首先举个例子:

有这么一家公司,公司由几个合伙人组成,每个人分别出资,自己既是老板又是员工,但是几个人又互不统属,每个人的工作也不固定.当客户来的时候,每个人做自己的事,既不主动接待,也不向客户说明自己的职责.长此以往,这家公司的前途可想而知.

再来看看这样的一家公司,公司有总经理,部门经理,员工三层,员工负责具体的工作,部门经理知道自己部门员工都是谁,都能做什么,总经理负责客户的吸纳并分配工作给相应的部门.这样一家公司,层次分明,每层都知道自己的工作和下属的情况,正常情况下,这样的公司的发展将不是第一家公司可比的.

总结这样的两家公司,他们的区别是:第一家公司,没有层次,职责不清.既不知道能做什么,也没有管理者来监督工作的执行,就如同一推散沙一般.第二家公司则不同,公司层次清楚,我如果需要这家公司来做某项工作,只要找到公司老板,告诉他我要做什么就可以了.至于怎么执行,就是这个老板的事了,我身为客户就不需知道了.

这种公司管理的层次就可以简单的理解为软件设计中的分层.

分层的概念有了,我们再来看看实际的工作:

情况一:老板接到一项单子,这项单子有很多工作,但是老板并没有将这些工作记录下来交给执行工作的部门经理,而是直接口对口的说给了部门经理,结果第二天,该部门经理生病请假了,那么这项工作如果还有必要做的话,有两种方法:1,等这位部门经理病好了,2老板再交代一遍.

情况二:老板接到一项单子,这项单子有很多工作,但是老板将这些工作记录下来写在了一个文档中,然后将这个文档交给了执行该工作的部门经理,而不是直接口对口的说给了部门经理,那么第二天,无论是该部门经理生病请假了,还是跳槽了,只要这个文档还在,那么老板只需要将这个文档交给新的负责人,然后负责人来分配这项工作给员工就可以了.

那么这个文档是什么呢?这个文档就是软件设计分层中,必不可少的一层——实体层.至于它的好处,只要理解了文档在公司之间传递的作用,即将各个层的变化之后不影响该项工作的执行,就可以了.当然这个文档在各层之间传递的时候必然会有一些变化,这些变化就是导致这些变化的层所做的工作,也就是各层的功能.

实体层的概念怎么讲呢?我的观点就是,在软件设计分层中,各个层次之间的交互传递是通过实体的传递来实现的.简单点说,实体层就是承载具体数据的一层,如果没有实体层的存在,那么也就没有了对象,也就没有了面向对象的设计思想.所以,在编写软件的层次中如果没有实体层也就不是面向对象的软件,从我理解的角度,正是因为软件实体层的存在使得软件的各层之间的变化才能够封装.

 

posted @ 2011-11-17 08:41  zs234  阅读(199)  评论(2编辑  收藏  举报