框架束缚了OO思维吗?
最近在用ibatis.net开发电子商务网,架构借用了ibatis官方网发布的示例Npetshop:
一、拥有一系列贯穿整个系统的领域模型(Domain)
二、持久层完成领域对象的持久化操作,直接和数据库进行交互(通过 IBatisnet进行映射)
三、服务层对持久层进行封装,进行领域对象的操作
四、表现层
五、UI界面
Domain是整个系统的基础,其抽象出了整个系统的领域对象,当然这里抽象出来的领域对象其实是不完全的,只是作为了没有包含行为的数据载体,通过外部的行为对其进行操作.
数据持久化层采用了Ibatisnet系列组件,使用了DAO对象,该对象为数据访问层提供了统一的访问接口,可以和ADO.net \ NHibernate \ Ibatisnet SqlMapper等协同完成数据访问任务,屏蔽了底层数据映射,并且支持扩展。
Service层对数据持久层进行了封装,主要完成一些针对对应的Domain对象的行为,这一层使用统一的DAO进行操作,完成业务行为
表现层定义了与界面操作相关的后台实现,其行为主要是针对界面操作的,该层调用Service层的业务方法完成界面操作
开发过程中,导致这样一种结果:由于Domain层是数据的载体。所以先设计好数据库表关系,一张表一个实体,然后持久化层写一个对该实体进行增,删,查,改的接口,再写一个类实现该接口(并通过框架机制跟数据库连接),然后Service层对持久层进行了封装,加一些逻辑。
我有一下一些困惑的:
1,是否业务逻辑很简单不需要oo分析与设计,本就是围绕数据库操作,比如会员管理,首先在脑子里显示的是一张数据库关系图,会员,会员类型,会员等级,会员登录纪录表。每张表一个实体,接口就是增,删,查,改,一切都是从数据库开始,建一张表,然后机械的在每一层添加类,不需要oo分析与设计,
2,架构分层清晰,但体会不到灵活性,感觉在做机械的重复。束缚展开OO思维。
[该贴被fety07于2007-10-19 20:53修改过]