- 讲师:刘萍萍 / 谢楠
- 课时:160h
- 价格 4580 元
特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关
配套通关班送国网在线题库一套
先来做第一步,将动作和状态抽象出来,程序的状态应该包括:
1.程序状态:运行状态和未运行状态。
2.用户类型:管理员和授权用户。
3.密码:正确的密码和错误的密码。
4.登录状态:成功登录和登录失败。
动作应该包括:
1.登录:即用户在界面上输入用户名和密码。
2.注销。
第二步,编写C#?程序建模。
状态已经抽象出来了,在NModel里面,抽象出来的状态一般是用枚举值表示的。
MILY: 'Courier New'">public enum ModeState { Initializing, Running }
public enum User { Authenticated, Administrator }
public enum Password { Correct, Incorrect }
public enum LoginStatus { Success, Failure }
接下来模拟动作:
[Feature("Login")]
public static class Login
{
public static Map
[Requirement("Send username and password to the server to log in.")]
[Action]
public static void Login_Start(User user, Password password)
{
if (password == Password.Correct)
ActiveLoginRequests = ActiveLoginRequests.Add(user, LoginStatus.Success);
else
ActiveLoginRequests = ActiveLoginRequests.Add(user, LoginStatus.Failure);
}
public static bool Login_StartEnabled()
{
return WebSiteModel.State == ModeState.Running;
}
public static bool Login_StartEnabled(User user)
{
return !ActiveLoginRequests.ContainsKey(user) &&
!WebSiteModel.UsersLoggedIn.Contains(user);
}
[Requirement("It should be possible to log out from any page")]
[Action]
public static void Logout(User user)
{
WebSiteModel.UsersLoggedIn = WebSiteModel.UsersLoggedIn.Remove(user);
}
public static bool LogoutEnabled()
{
return WebSiteModel.State == ModeState.Running;
}
public static bool LogoutEnabled(User user)
{
return WebSiteModel.UsersLoggedIn.Contains(user);
}
}
上面的代码稍微解释一下,标注了[Action]的函数,就是抽象出来的程序所支持的动作,例如Logout;而在动作函数名后面加上Enabled的函数,是NModel用来判定指定的动作是否可以执行,例如LogoutEnabled函数。
责编:罗莉
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
课程专业名称 |
讲师 |
课时 |
查看课程 |
---|
点击加载更多评论>>