告诉,不要问原则和密码到期

Hup*_*are 7 c# asp.net-mvc law-of-demeter tell-dont-ask

为了保持实用的编程原则,我正在尝试根据"告诉,不要问"原则来决定如何处理用户密码更改.

我有一个用户对象,其密码每30天到期一次.如果密码已过期,我需要能够显示密码已过期/更改密码视图.如果密码过期(它的状态),然后选择要显示的视图似乎违反了原则,则询问对象.

处理这种情况的最佳方法是什么?

Gav*_*ell 3

当密码经过身份验证时,或者您首先对用户调用的任何函数,您可以从用户对象抛出一个PasswordExpired异常。