一般我们的做法,对象跟对象之间当然有共同特性才能抽取出来,如果GenericInfo(一般的信息),HouseInfo(房产类信息),
JobInfo(招聘类信息),TradeInfo(交易类信息) 都是 Info 类的子类
那他们都有一个特性就是信息。所以信息是一个属性,其他各自里面必须有自己的特性。
但是你这样设计出来的表应该只有一个主表信息、从表类型类型表,然后把对象GenericInfoDAOImp关联查询出主从表对象队列。
只设计一个主信息表是实现不了的,如果抽象与二维表对应关系不明白,请参考多些oo的书籍和数据库设计书籍,不要盲目使用oo设计系统,特别是针对数据库的一些系统。
提一下speed框架,因为它针对的表、视图对象逻辑设计模式,针对表进行操作,简单并不难理解,如果你的系统大了以后用oo的思维去实现数据库操作一定左右为难。
打个比方,原系统角色有四种:匿名用户、注册用户、特殊用户、管理员四类各自权限不同并可以配置菜单权限,oo是设计四个用户类。现在需要修改系统满足用户角色,发现需要继续增加100种角色。当初设计时候没有考虑到针对数据库逻辑的应用,因为角色与权限菜单都是多对多关联,硬性设置四类对象可以实现,但现在增加100种角色那就不可能增加100个类和针对该类的操作。
如果使用普通三、四层模式不抽象oo即可满足以后扩展需求,针对表、视图对象逻辑进行开发,请参考:
http://sourceforge.net/projects/speedframework/
例子代码与框架代码。
特别提醒各位,不能滥用设计模式与oo进行业务设计。
简单的来说当你设计出表名,表关系即可进行代码开发,并不怕表字段逻辑的扩展修改。这样简单的程序对于接手维护和自身团队开发是一种方便。开发员并不需要了解该类对象的逻辑,只要dba给出一条可用的sql即可实现填鸭子。
以上属于个人见解,如有悟道请批评。
欢迎加qq群讨论speed框架和java:5338343