c# - 告诉,不要问原则和密码过期

标签 c# asp.net-mvc law-of-demeter tell-dont-ask

为了遵循务实的编程原则,我试图根据“告诉,不要询问”原则来决定如何处理用户密码更改。

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

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

最佳答案

login
   model.validate();
   return model.show(self);

passwordExpired()
  return View("ChangePassword")

loginSuccess()
  return View("default")

class User
  show(aController)
      if passwordExpired
          return aContoller.passwordExpired()
     else return aContoller.loginSuccess()

Tell, Don't Ask, 无一异常(exception),它遵守得墨忒耳的法则

关于c# - 告诉,不要问原则和密码过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878676/

相关文章:

c# - Visual Studio 2008 - 为什么 vshost.exe 的完整路径限制为 126 个字符?

asp.net-mvc - 使用 Asp.net Mvc 的缩略图

c# - 当数据对于 web.config 来说太大时该怎么办

C# 巨大的 2-dim 数组

c# - 获取 Azure blob 容器

java - 这段代码如何违反 Demeter 法则?

c++ - 得墨忒耳法则和异界转移

javascript - 使用 MVC、JavaScript 显示弹出窗口

asp.net - 如何防止“发布网站”覆盖配置文件?

java - 得墨忒耳定律与数据模型对象