Я работаю над довольно простой проблемой с проектными последствиями.
Пожалуйста, потерпите меня, пока я описываю ситуацию в смутных терминах.У меня есть объект, назовите его EntityA:
EntityA{
attr1 : type1;
attr2 : type2;
. . .
}
Этот объект хранится в базе данных, и все работает отлично.
В качестве нового требования мне нужно добавить атрибуты аудита вEntityA.Теперь у меня есть:
EntityA{
. . .
whenCreated : Date (not null);
whoCreated : User (not null);
whenLastUpdated : Date;
whoLastUpdated : User;
}
При добавлении новых столбцов в базу данных я назначаю значения по умолчанию: whoCreated = System whenCreated = 24-Jan-2012.
Другая часть требования - эточто я не показываю атрибуты «создания» на экране, если они имеют значения преобразования / значения по умолчанию.
Я знаю, что мне нужно будет разместить логику для проверки этого на уровне отображения.Тем не менее, что-то кажется смешным с явным размещением условной логики там.
Например, вместо этого:
if((entA.whenCreated != '24-Jan-2012')
&& (entA.whoCreated != 'System')){
showCreationAudit();
}
Я думаю, что я должен сделать что-то вроде этого:
if( shouldDisplayCreationAudit(entA) ){
showCreationAudit();
}
Итак, учитывая, что я, скорее всего, столкнусь с подобными ситуациями, каков хороший способ абстрагировать условную логику для «странных» жестко закодированных значений?