【发布时间】:2012-01-24 21:15:05
【问题描述】:
我正在解决一个非常简单的问题,涉及设计分支。
请耐心等待,我用模糊的语言描述情况。 我有一个实体,叫它EntityA:
EntityA{
attr1 : type1;
attr2 : type2;
. . .
}
此实体存储在数据库中,一切正常。
作为一项新要求,我需要向 EntityA 添加审计属性。现在我有:
EntityA{
. . .
whenCreated : Date (not null);
whoCreated : User (not null);
whenLastUpdated : Date;
whoLastUpdated : User;
}
将新列添加到数据库时,我分配了默认值: whoCreated = 系统 whenCreated = 2012 年 1 月 24 日。
要求的另一部分是我不在屏幕上显示“创建”属性,如果它们具有转换/默认值。
我知道我需要在显示层中放置逻辑来对此进行测试。尽管如此,将条件逻辑显式放在那里似乎有些有趣。
例如,而不是这个:
if((entA.whenCreated != '24-Jan-2012')
&& (entA.whoCreated != 'System')){
showCreationAudit();
}
我想我应该这样做:
if( shouldDisplayCreationAudit(entA) ){
showCreationAudit();
}
所以,请记住,我可能会遇到类似的情况,有什么好方法可以为“奇怪的”硬编码值抽象条件逻辑?
【问题讨论】:
标签: java design-patterns data-conversion hardcoded