JiveJdon站内消息设计
模型设计图:

以ShortMessage为主模型,站内消息分收到的消息和发出的消息两种,根据这两种,分别建立ShortMessage的两个子类FromShortMessage和ToShortMessage;FromShortMessage中目前没有任何与收消息相关的特殊特征;而ToShortMessage则有发出消息的特征,就是当对方阅读该发出的消息时,必须标记该发出消息为已读。
对应模型的Jdon框架配置就如下,分别为FromShortMessage和ToShortMessage建立相应CRUD:
<model key="msgId"
class="com.jdon.jivejdon.model.FromShortMessage">
<actionForm name="fromShortMessageForm"/>
<handler>
<service ref="shortMessageService">
<getMethod name="getFromShortMessage"/>
<createMethod name="saveShortMessage"/>
<updateMethod name="updateShortMessage"/>
<deleteMethod name="deleteShortMessage"/>
</service>
</handler>
</model>
<model key="msgId"
class="com.jdon.jivejdon.model.ToShortMessage">
<actionForm name="toShortMessageForm"/>
<handler>
<service ref="shortMessageService">
<initMethod name="initShortMessage"/>
<getMethod name="getToShortMessage"/>
<createMethod name="saveShortMessage"/>
<updateMethod name="updateShortMessage"/>
</service>
</handler>
</model>
Struts-config.xml中ActionForm的配置
<form-bean name="fromShortMessageForm" type="com.jdon.jivejdon.presentation.form.ShortMessageForm"/>
<form-bean name="toShortMessageForm" type="com.jdon.jivejdon.presentation.form.ShortMessageForm"/>
在界面表现层,虽然命名为两个ActionForm : fromShortMessageForm和toShortMessageForm,但是它们实则是同一个Form。
那么我们在界面进行处理时,需要分清楚当前是收件箱还是发件箱,如果是收件信息列表,那么对应的是fromShortMessageForm。
以上消息模型设计可以总结一些规律:
很多情况下:同一个实体在不同情况下表现为不同形式,尽管这些形式不同,但他们实体内容基本一致,那么是否为他们的不同表现形式建立不同实体子类呢?关键是:这种形式不同是否会影响业务不同的操作,比如收到消息和发送消息初一看是否两者消息内容是一样的,我们很容易使用抽象思维,用一个消息模型来抽象他们,可以达到精炼目的;但是这种抽象消息在不同状态情况下就有不同形式,在收件箱中就是收到消息;在发件箱中就是发送的消息,它们又从抽象落实具象的不同,所以,我们就设计上述模型图,体现抽象和具象区别不同。做到收发有余。
继承模型的编程模型
消息模型是一个父子继承关系,这样父子继承关系的模型如何使用Jdon框架来简单明了的实现,下面根据消息模型的实践总结为最佳实践如下图:
