我在编写软件的时候一般将软件分为如下几层:
CTL控制层 负责前台的画面布局,接收用户的操作、输入数据
SVR层 服务层,负责处理CTL层的请求及为CTL层提供各种读取数据的服务
BIS层 业务逻辑层,负责处理相关的业务逻辑
MDL层 Model层,负责定义相关的实例对象
DAO层 数据访问层,根据Model定义的对象生产出指定的SQL语句,并且执行,将执行结果返回调用步骤一般是: CTL 调用 SVR ,SVR 接收请求,然后调用BIS,BIS处理完业务逻辑后调用DAO,DAO根据MDL定义的对象,生产出相应的SQL操作语句,然后执行,再将结果依次返回,加以呈现。但是我感觉CTL中如果要实现一个运算,不如用户输入长方形的长和宽后,CTL要自动计算出长方形的面积,这个事件应该怎么触发呢?如果硬性的写在CTL中恐怕就有点不灵活,每一个即时计算都要这样写,有没有好的方法可以统一是想呢?请各位指教,或者有更好的方法请勿吝啬,谢谢!

解决方案 »

  1.   

    因为 现在的需求变化的很快, 我分层的目的是为了增加相应的灵活性,如果要增加一个实体,我只需要在MDL层定义实体的属性(MDL有统一的接口),而DAO层不需要变动,CTL、增加相应的界面,SVR不变、BIS增加逻辑即可,避免所有的代码混杂一起,很难维护,况且如果要修改原有的业务逻辑,也不会很困难
      

  2.   

    一般的软件开发流程都会有如下几步:
    需求->分析->架构Architecture(概要设计)->设计(详细设计)->开发...而分层是框架(Framework)的一部分,框架是架构(Architecture)的一个设计的交付物,而架构是沟通需求和设计实现的桥梁,所以脱离需求讲架构一点意义也没有,更不用说分层了。举个例子,我要做一个QQ或MSN那样的IM工具,楼主的分层肯定是不适合的。