请教一个只能修改的模块设计问题,我做的不够优雅

08-03-22 tianhaoleng
对于公司简介,或者公司概况之类的只有一条记录,并且还要求能够修改的栏目,该如何设计和建模。
我以前是把他设计成一个领域模型,但是不给他添加和删除的动作,但我老感觉这不够优雅。各位高手是这么做的呢?

tianhaoleng
2008-03-22 22:40
自己顶下,高手解惑!

killer
2008-03-24 09:11
>>>并且还要求能够修改的栏目,
这个是什么意思?能具体讲一下吗?

[该贴被killer于2008-03-24 09:12修改过]

tianhaoleng
2008-03-24 17:07
比方说:一个学校网站的‘学校简介’这个栏目,他里面的内容基本是不变的或者很少变动,“学校简介”不能添加新的记录,它只能对已有的学校简介内容进行修改,也不能删除它。

我想,甚至可以把‘学校简介’这个栏目页面做成静态的HTML,但是用户希望可以修改他的内容。

一般情况下我都是把这类模型作为一个域模型,但是它在数据库里只有一条记录,或者拿到OO的角度,它只有一个实例,我只对这个模型提供修改和查询操作。增加、删除都不提供。

但是,在一个表里只放一条数据,我觉得很不优雅,做单例类的话,hibernate又不支持,求优雅的建模方法!

killer
2008-03-24 18:06
“学校简介”的数据基本是不变的或者很少变动,而且也没有行为,这种情况不应该把它作为一个实体,而应该把它弱化为属性,比如可以把它作为系统的参数。

tianhaoleng
2008-03-25 08:55
如何设计才算是把他作为了系统的参数了呢?或者说把它作为谁的属性呢?

小弟不才,还请大哥清晰指教,感激不尽!!

[该贴被tianhaoleng于2008-03-25 08:57修改过]

brian
2008-03-26 14:07
你把它做成一个属性,在后台可以设置就可以了吧

tianhaoleng
2008-03-26 15:56
但是这个属性的数据我该存在哪里呢,数据库中难道为了这一条数据建一个表吗?

killer
2008-03-26 16:01
可以设计一个系统参数的类,属性有“参数名”和“参数值”,你这个“学校简介”其实就是系统参数名“学校简介”所对应的参数值

tianhaoleng
2008-03-26 16:37
系统参数的类是单例?

如果是单例的话,该如何持久化他。

又可能出现一个数据表里就一条记录

killer
2008-03-26 16:48
>>系统参数的类是单例?
不是单例,可能有很多系统参数的实例,因为除了“学校简介”这样的参数外还可能有其他参数。

>>又可能出现一个数据表里就一条记录
你这个是受数据库思维的左右,这只是这些实例持久化的一种方式而已,象系统参数这样的类可以选择数据库持久化,也可以选择xml文件等其他持久化方式。 对于系统参数类,持久化到数据库表里面也不一定就是一条记录

tianhaoleng
2008-03-26 22:37
我懂你的意思了,谢谢killer大哥。

猜你喜欢