私はかなり単純な問題に取り組んでいます。"奇妙な"ハードコードされた値の条件付きロジックを抽象化する良い方法はありますか?
私は漠然とした言葉で状況を説明していますが、私に同行してください。 私は実体を持って、エンティティAそれを呼び出す:
EntityA{
attr1 : type1;
attr2 : type2;
. . .
}
このエンティティは、データベース内に格納されており、すべてが素晴らしい働いています。
新しい要件として、監査属性をEntityAに追加する必要があります。今、私が持っている:データベースに新しい列を追加する場合
EntityA{
. . .
whenCreated : Date (not null);
whoCreated : User (not null);
whenLastUpdated : Date;
whoLastUpdated : User;
}
、私は、デフォルト値を割り当てる: whoCreated =システム whenCreated = 24-JAN-2012。
変換/デフォルト値がある場合は、画面に「作成」属性が表示されないという要件があります。
私は表示レイヤーでこれをテストするロジックを配置する必要があることを知っています。しかし、条件付きロジックを明示的に配置すると面白いようです。例えば、これに代えて
:
if((entA.whenCreated != '24-Jan-2012')
&& (entA.whoCreated != 'System')){
showCreationAudit();
}
私はこのような何かやるべきだと思う。私はそうあるもの、似たような状況に遭遇することを念頭に置いて、だから、
if(shouldDisplayCreationAudit(entA)){
showCreationAudit();
}
を「奇妙な」ハードコードされた値の条件付きロジックを抽象化する良い方法ですか?
はい、あなたの言っていることに同意します。しかし、私が本当に求めているのは、データが慣習的でないときに、それらの「表示/表示しない」質問をどのように抽象化するのかです。 – jharig23