论坛首页 Java企业应用论坛

一个实际问题的建模问题

浏览 3577 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-03-21  
有一个对象,称为保单意向-Intent,表单内容-FormValue,保单项目-ItemValue.
它们的关系Intent 1--n FormValue 1--n ItemValue
现在有一个要求,当保单意向为完成时,则不能再对保单意向做任何修改。

IntentService
{
    void updateIntent(Intent intent);
    FormValue addFormValue(Intent intent,FormValue formValue);
    void removeFormValue(Intent intent,FormValue formValue);
    void removeFormValue(FormValue formValue);
    ItemValue addItem(FormValue formValue,ItemValue item);
    void removeItem(ItemValue item);
    void updateItem(ItemValue item);
}
对于上面的那个要求,我再这些方法里都要有这样一个判断
  intent.isFinish();
首先觉得Aop不合适。不知大家有没有好的想法?
   发表时间:2005-03-21  
把修改FormValue和ItemVlue的方法由Intent封装起来。

比如
FormValue addFormValue(Intent intent,FormValue formValue);
改为
Intent.addFormValue(FormValue formValue)
{
   if(intent.isFinish())
      throw xxxxx;
   this.formValues.add(formValue);
}
0 请登录后投票
   发表时间:2005-03-21  
但是还是到处是isFinish().
是否需要这样一个对象

IntentChanger
{
    IntentChanger(Intent intent);
    {
        if(intent.isFinish(););
        {
             throw .....
        }
    } 
}
0 请登录后投票
   发表时间:2005-03-21  
nihongye 写道
但是还是到处是isFinish().
是否需要这样一个对象

IntentChanger
{
    IntentChanger(Intent intent);
    {
        if(intent.isFinish(););
        {
             throw .....
        }
    } 
}


到处都是怕什么的?难道你想一个类的一个方法只被调用一次?
0 请登录后投票
   发表时间:2005-03-21  
isFinish --> isFinished
0 请登录后投票
   发表时间:2005-03-21  
实现一个保单完成状态的IntentService 实现,在需要IntentService 实例时就根据保单的状态实例化相应的IntentService 实例。
简单的IntentService 保单完成状态实现就是每个方法都抛出异常。
类似于NULL OBJECT模式,不过这种多态的用法应该挺普遍的。
0 请登录后投票
   发表时间:2005-03-21  
:idea: 感觉是个不错的注意,多谢。
0 请登录后投票
   发表时间:2005-03-22  
自己维护自己的内部状态不行吗?
void updateIntent(Intent intent){
     if(isFinished==false){
         .....
     }
}

JDK里面好多这样的代码
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics