一般情况下,程序大多是分三层. 基本每个人都能说出出层的好处.但分层除了复杂度增加外还有什么缺点呢? 又如何处理?

解决方案 »

  1.   

    分层是一个软件架构设计范围的问题,架构设计的概念就有“决策派”一说,认为设计的过程就是一系列决策的过程,如RUP中对“软件架构”的定义
    分层不分层,如何分层显然是取决于所设计的系统实际情形。相较于不分层,分层可能会在性能上牺牲一些(不绝对,要具体问题具体分析),但得到的可能更多,如结构良好的系统可维护性要大大强于结构零乱的系统
      

  2.   

    虽然理论上说分层会影响性能,但是现在分层框架,例如ssh 都用了很好提高性能的策略,反而性能会更高。
    例如:spring 可以保持对象只创建一次 避免了重复创建对象的开销,也节省内存
          hibernete有一级缓存和二级缓存
    所以说,性能不是问题
      

  3.   

    SVN源代码管理服务提供商 http://www.kingtoo.com/svn.asp 上海京拓科技
      

  4.   

    分层设计为的是应对以后的需求、平台变化,比如,分出DAO层后,如果要把数据库从MS SQL 迁移到 Oracle 时,只需要按DAO实现一套 Oracle 数据库操作实现,软件系统前面的层不会应为你改底层数据库支持平台而改动程序,这就是分层、接口的好处,当然这种好处的代价就是为实现这种功能要比不分层要多费一些资源,看你项目的需要了,不能为了分层而分层
    找到必要的平衡点很重要
      

  5.   

    执行/通信效率肯定会有一定的损失,但是人们总能找到一些方法来弥补,让它尽量维持在大家能接受的范围。或许以后有更好的model,但是目前来说,分层是基本的架构设计方法之一。
      

  6.   

    看着感觉像是在讨论linux与windows的好坏一般,其实我以为就是得看实际的应用环境的。
      

  7.   


    呵呵,这就是耦合的确定啊, 楼主应该学学MVC了
      

  8.   

    三层指的就是MVC,而且确实有这个缺点的.