比较好的办法是尽可能的做到模块化,多用xml来做配置,比如一个模块他去调用哪些资源都用xml来配置,这样如果需求变了,只需修改相应的xml配置即可。
  另外底层也要预先多留些接口,不要写得太死了。
  总之需求改变是正常的,关键是怎样让改动最少。

解决方案 »

  1.   

    应用好mvc结构。
    NEC的一套系统很能体现这个东西,前段时间用过,感觉能做到业务改变的时候代码改动最小。
      

  2.   

    to zhangkai:
        最近做了一项目,是基于j2ee的,web层采用struts,中间层采用session bean实现业务逻辑,用entity bean和dao模式实现数据的访问。中间层与web层采用valueobject进行业务数据的传送,在web层用formbean包装数据,并在jsp中显示。象这种结构的系统,当业务改变时,有时上述涉及的东西都要改动,这种编码维护的费用太高了。ejb规范说,ejb适合业务需求易变的系统,但我看来当改变一表结构,光entity就要改变描述符,接口文件,实现文件,还不如直接用sql语句,你能解释应该怎么做吗??
      

  3.   

    我一点点粗浅见解,不当之处,请谅解!
    采用mvc结构的时候,把业务都封装在moderl中,其实也就是用普通类吧。
    m:封装业务功能。甚至可以包含在叶面显示中的那些如text等的名字命名。再moderl中调用EJB,在EJB中只做数据库的提取,删除等纯数据库动作。而且在数据提取的时候最好把表的一行纪录对应用一个结构体(在java中实际上就是用类了)。这样,数据库提取得到的数据都对应到结构体中,把每一行纪录(实际上就是每一结构体)添加到一如List类此的炼表中。这样,ejb取到的数据返回的都是list,list中的数据又是表的列属性对应的数据。所以在ejb中基本上在用户修改任何需求都不会影响到ejb.除非要修改表结构。
    v:jsp
    显示,其页面显示的内容都可以从moderl中取到。最好的是连显示的text等类此的名字都从moderl取到(这样做到如果是从头做起是要付出代价的,最好的是开发些通用类,封装好这些基本的功能。nec的WAtool就是提供了这些,其实也可自己开发,不会太难)。
    c:servlet.
    由servlet控制导向问题,如果设计的好,可以做到在servlet中尽量少的代码,基本上只做页面导向而已。以上只是抛一块石头,忘能引出点玉来!
      

  4.   

    大家有这方面的经验吗,有什么想法都可以说出来,这可比只会编ejb,用j2ee要重要得多!!