数据驱动、模型驱动作为如今软件设计中两种不同的模型驱动方法,应该说各有各的优缺点以及适用的场合,不能就一概的去认为哪种必然就是更好的。
数据驱动采用的方式是根据对业务的分析建立数据模型来进行系统设计的一种方法,通过数据模型的建立来完成系统的实现,一般来说,在采取数据模型的系统中多采用的是前台直接和数据模型进行绑定的方式,这样在实现起来相对来讲会非常的快速。根据数据驱动的系统设计以及实现方式上来讲,数据驱动适合于数据型的应用系统的建设,而现在大部分的中小型应用系统很多就停留在这个层面上,在这类系统中数据驱动会显得特别的实用和好用,这类系统一个非常突出的共同点就是系统基本属于信息的录入、显示以及查询这样的一个过程,不存在复杂的数据业务逻辑处理。
模型驱动采用的方式根据对业务的分析建立业务对象模型来进行系统设计的一种方法,通过业务对象模型结合系统架构约束来进行系统的实现,一般来说,在采取模型驱动的系统中多采用N层的结构体系,前台显示一般和业务显示模型进行交互,而业务显示模型则通过业务对象模型进行交互来完成业务逻辑的处理,业务对象模型通过与持久对象模型进行业务持久的处理,在这样的情况下,势必增加了系统的复杂度,模型驱动适合与业务型应用系统的建设,这个在行业化的业务应用上显得比较突出,这类系统的共同点在于业务逻辑较为复杂而且多变,系统不仅仅是信息的录入、显示以及查询,更多的是对录入或显示的信息进行业务逻辑的处理。
经过上面的简单介绍后,我觉得对于数据驱动和模型驱动都会有个大概的概念,只能说数据驱动和模型驱动各有优势,要结合系统需求来选择相应的驱动方式。
对于模型驱动个人有些观点,其实从模型驱动我们可以看出如果采用模型驱动面对一个数据型的应用系统时,最后产生的业务对象模型即退化为了数据模型,只是由于模型驱动通常采用的N层架构此时反而约束了此模型的快速实现,是否应该在模型驱动的N层架构中去考虑一种退化的业务对象模型的支持呢?觉得这点是值得思考的,如果支持的话应该说对于模型驱动非常有利或者说是模型驱动的一个补充,相当于对于模型驱动进行分类处理,有些时候架构不能太S,还是要根据系统建设的需求做出适当的调整。
根据这样的观点,其实数据驱动也是模型驱动,只是它采用的是一种退化的业务对象模型的驱动,并同时进行架构层次的调整以适应系统的快速建设,但数据驱动对于复杂多变的业务逻辑系统来说毕竟难去满足了,主要是会在数据模型的建立以及业务逻辑的修改的方面。
综合这样的观点,还是更为倾向模型驱动,同时也认为,模型驱动的架构应该考虑对于退化的业务对象模型的支持。