| 发表于:2007-02-15 09:57:3923楼 得分:0 |
我觉的lz没有错,lz用的就是按着mvc模式做的,而lz的项目经理可能没有理解lz的意思。lz的表达有问题,对mvc可能还不透澈。按我的理解,lz的意思是这样的: lz定义了一个m层的体系结构,所有的其它程序员的实现的m层模块都要按此体系结构:一个m层的模块,它包含两部份。一个是它的数据模型,一个是它的业务逻辑模型(lz所说的dao层)。任何一个m层的模块选择一种简单的数据结构(比如arraylist,hashmap)作为数据模型,而不同的m层模块可能使用不同的数据结构,并对其它的模块隐藏这一不同。业务逻辑模块除了有完成业务所必要的方法外,还实现了lz定义的一组接口。这组接口可能用来接收来自c层的请求(这样c层可以支持所有的m层模块,由此来提高可重用性和灵活性),把数据模型中的数据写入db,实现observer pattern下的功能(包括lz说的返回一个arraylist hashmap之类应该就是说这个吧)。 另一方面lz说的“把request传给m层再传给dao层”之类的,按我的理解是表达上的问题,因为dao层就是上述m层的一接口(虽然lz 貌似没把它写成接口,而写成类供别人继承,反正本质是一样的),所谓的dao层就是m层的一部份。没有所谓的 "request再传到dao层 ",request还是在m层中,只是由实现的所谓的dao层中定义的方法的模块(在lz的实现中是继承了lz所写的dao的类)来处理数据模型和完成业务。 以上就是我对lz所说的“model层想用什么就用什么数据啊!然后model层需要调用dao层的时候我也是传这个request阿。” 关于bean,dbbean vobean是否需要要看据体的应用。按lz的意思要把这两个bean的功能都在所谓的dao部份的模块中实现的话,这两个bean就不用了。单次开发看来是没什么问题。但比如dbbean,假设现在开发用的是odbc桥接,而以后改用jdbc的话,这次写的m层模块的code就要改还要再编译,虽然这也没什么工作量,但要是其它问题呢?比如写回db的代码中发现的一个原则性错误,要一个大的修改甚至要得写,那就要从所谓的dao模块中提取这部份代码重写,若再衰一点,一个没有经验的程序员可能在代码中把写回db的过于溶入模块无法抽取,那就要重写整个模。 我是这样想的所谓的lz的m层可以只要一类bean。lz所说的体系结构,数据模型和业务是分开的,其实是可以都封装在这类bean中的,但在bean中可以的分离的,但在外部看不出来,只看到一个m层的bean。在这类bean中的业务逻辑部份,再由的dbean vobean的对象构成,这样易于修改维护。 | | |
|