乱弹琴的系统设计套路(适合新手)

作者:罗代均 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技术,可以自动创建数据库表,不用数据库设计了.

              当然,考虑到效率问题,有些表,还是需要我们手动调整,比如加入一些冗余字段,添加索引等。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值