一个计算租赁费、水费、电费的程序。 DAL 提供 
rent类,包括房屋的基本信息,房屋面积、每平方单价、租赁费到期日期、收费周期、收费日期等。
water类  包括本次超标记录,单价,上次超标记录
electric类  包括本次超标记录,单价,上次超标记录现在 BLL 层 有个count类,根据传进来的上述对象进行计算。我得本意是 把rent类 water类  electric类写到一个house类里。然后rent类,water类,electric类只能靠house的一个方法产生或者构造函数产生,而且rent类,water类,electric类下面的属性为只读。为什么要这么做呢。 主要是防止bll层的开发人员有意或者无意改动这些基础数据, 他们只要考这个只读的数据进行计算就可以。而且他们也能自己new rent()类。只能通过house(int houseId)这样的构造函数产生。这样似乎可以增加程序的安全性。请问有必要吗?而且house类应该怎么写?

解决方案 »

  1.   

    他们只要靠这个只读的数据进行计算就可以。而且他们也能自己new rent()类。只能通过house(int houseId)这样的构造函数产生。
      

  2.   

    另外我觉得这是一个三层架构比较典型的例子。DAL 只负责提供需求基础数据然后BLL负责计算。我所想的是。三层架构带来的一点好处是不是, 对于BLL人员来说可以完全接触不到数据库,这样可以保证系统的安全。 就比如淘宝,如果把数据库开放给人以一个BLL的开发人员,那将多可怕? 更何况淘宝会开放一些API,最终面对的用户群体是广大的店家开发人员。所以,淘宝不可能吧数据库展现给他们,能给他们的只是对象。