私は個人的にarround戻り値/ Enum
タイプをプログラムしたくありません。あなたが持っている戻り値のタイプが多いほど、テスト/作業する必要のあるパスが増えます。また、フローを制御するための例外を使用するのは悪い習慣です(他のオプションは実際には見つかりませんが、通常はより良いオプションがあります)。
期限切れのパスワードは、私にとっては本当に例外的なものではありません。結局のところ有効な状態です(それ以外の場合は、パスワードの期限切れに何かをするでしょう)
私はそれを単純なままにして、bool
またはFunc<T>
のようなものを呼び出し元が直接呼び出すことができます。
おそらくそのような何か:発信者側では
public class User
{
private DateTime _lastChangeDate;
public Action Validate()
{
if (_lastChangeDate >= DateTime.Now.AddDays(-30))
{
return new Action(() => this.Login());
}
else
{
return new Action(() => this.ChangePassword());
}
}
private void Login()
{
Console.WriteLine("Login");
}
private void ChangePassword()
{
Console.WriteLine("Change Password");
}
}
:
user.Validate().Invoke();
期限切れのパスワードは愚かなことです。人々はちょうど彼らが再びそれを変更する必要があるときに複雑なものを覚えていた*ので*偽ったものを使用する傾向があります。 – ThiefMaster
PCIに準拠していない – Hupperware
@Hupperware figure that :-p – jnm2