重構用戶登入:
- 用戶系統-用戶登入
User - 菜單系統-顯示菜單
Menu - 控制系統-流程控制
CMSController
用戶系統-用戶登入 User
- 新增一個
User class,把登入的部分放到User class中 - 還需要一個
isUserLogin變量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class User
{
public bool isUserLogin = false;
public void Login()
{
string username;
string password;
//檢查帳號
username = CmdReader("請輸入帳號");
if (username != "riva")
{
Console.WriteLine("查無此人");
return;
}
//檢查密碼
password = CmdReader("請輸入密碼");
if (password != "1234")
{
Console.WriteLine("密碼錯誤");
return;
}
isUserLogin = true;
}
}
菜單系統-顯示菜單 Menu
新增一個Menu class,把顯示菜單的部分放到 Menu class 中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Menu
{
public void ShowMenu()
{
bool isExit = false;
//選擇主表單
while (!isExit)
{
string selection = CmdReader("主表單:1.客戶管理 2.預約管理 3.系統管理 4.退出/n請選擇:");
switch (selection)
{
case "1":
Console.WriteLine("客戶管理");
break;
case "2":
Console.WriteLine("預約管理");
break;
case "3":
Console.WriteLine("系統管理");
break;
case "4":
default:
Console.WriteLine("退出");
isExit = true;
break;
}
}
}
}
控制系統-流程控制 CMSController
- 新增一個
CMSController class,用來控制整個流程 - 新增
Start方法,可以傳入User,Menu - 裡面的程式碼就是:登入和顯示菜單
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class CMSController
{
public void Start(User user, Menu menu)
{
//login
do
{
user.Login();
} while (!user.isUserLogin);
//顯示菜單
menu.ShowMenu();
}
}
整合套用
- 回到
Main方法,初始化這三大系統:用戶系統User、菜單系統Menu、流程系統CMSController - 調用流程系統的
Start方法,並傳入User和Menu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
static void Main(string[] args)
{
//初始化用戶系統
User user = new User();
//初始化菜單系統
Menu menu = new Menu();
//初始化cmscontroller
CMSController cms = new CMSController();
Console.WriteLine("======客戶管理系統======");
Console.WriteLine("請登入");
//啟動cms
cms.Start(user, menu);
Console.Read();
}
static string CmdReader(string msg)
{
Console.WriteLine(msg);
return Console.ReadLine();
}
public class User
{
public bool isUserLogin = false;
public void Login()
{
string username;
string password;
//檢查帳號
username = CmdReader("請輸入帳號");
if (username != "riva")
{
Console.WriteLine("查無此人");
return;
}
//檢查密碼
password = CmdReader("請輸入密碼");
if (password != "1234")
{
Console.WriteLine("密碼錯誤");
return;
}
isUserLogin = true;
}
}
public class Menu
{
public void ShowMenu()
{
bool isExit = false;
//選擇主表單
while (!isExit)
{
string selection = CmdReader("主表單:1.客戶管理 2.預約管理 3.系統管理 4.退出/n請選擇:");
switch (selection)
{
case "1":
Console.WriteLine("客戶管理");
break;
case "2":
Console.WriteLine("預約管理");
break;
case "3":
Console.WriteLine("系統管理");
break;
case "4":
default:
Console.WriteLine("退出");
isExit = true;
break;
}
}
}
}
public class CMSController
{
public void Start(User user, Menu menu)
{
//login
do
{
user.Login();
} while (!user.isUserLogin);
//顯示菜單
menu.ShowMenu();
}
}