作者:罗代均 http://hi.baidu.com/luodaijun
一家之言,不对可以指出,就事论事,切勿人身攻击!
第0步 确定问题领域
一个网友的简单需求
电子教材管理系统,教材要分章节显示内容
我们要分析的领域就是电子教材管理了
第一步 分析领域内对象
对象,是这里对象是哪些名词以及逻辑概念, 这里分析对象的属性
有些对象不但有属性,还有方法,而有些对象,只有属性值,就是值对象了
这个需求中,大概有下面三个对象,以及主要的属性
A) 教材
class Book{
private Long id; //教材标识
private String title; //教材名称
private String author; //作者
....//还要很多属性
}
B) 目录
class Category{
private Long id;//目录标识
private String title; //目录名称
}
C) 文章内容
class Article{
private Long id;//文章标识
private String memo;//文章内容
}
第二步 分析对象间关系
对象间关系,主要有 一对一,一对多,继承三种
从教材入手,先看看 教材 和 目录 的关系
目录,显然属于一本教材的,所以修改对象目录,加上所属教材属性
还有,目录是树形的,还有父目录
class Category{
private Long id;//目录标识
private Long title; //目录名称
private Book book; //所属教材
private Cagtegory parCate; //父目录
}
再看看目录和文章的关系,文章是属于某个章节的,章节就是目录了
class Article{
private Long id;//文章标识
private String memo;//文章内容
private Cagegory category; //所属目录
}
这个三个对象,由教材开始导航的,教材找到目录,目录再找到文章
第三步,对象持久化
由上面的分析,我们得到了 教材,目录,文章三个对象,下面就需要用ORMAP技术持久化了,典型的,当然是持久化到数据库了,使用hibernate和jpa技术,可以自动创建数据库表,不用数据库设计了.
当然,考虑到效率问题,有些表,还是需要我们手动调整,比如加入一些冗余字段,添加索引等。