class1.cs
来自「《深入浅出设计模式》的完整源代码」· CS 代码 · 共 67 行
CS
67 行
using System;
namespace SchoolSystem
{
//Base Class 基类
public class SchoolUser
{
public string FName;
public string LName;
public string UserType;
public void Show()
{
Console .Write("First Name: "+FName+"\n");
Console .Write("Last Name: "+LName+"\n");
Console .Write("User Type: "+UserType+"\n");
}
}
///Derived Classes派生类 校长类
public class SchoolPrincipal : SchoolUser
{
public SchoolPrincipal()
{
FName="David";
LName="Smith";
UserType="Principal";
}
}
//派生类 校教师
public class SchoolTeacher: SchoolUser
{
public SchoolTeacher()
{
FName="Patrecia";
LName="Terry";
UserType="Teacher";
}
}
public class SimpleFactory
{
public SchoolUser GetSchoolUser(string user,string password)
{
if(user=="Principal"&&password=="Principal")
return new SchoolPrincipal();
if(user=="Teacher"&&password=="Teacher")
return new SchoolTeacher();
return null;
}
}
//客户应用
class Client
{
[STAThread]
static void Main(string[] args)
{
SimpleFactory sf=new SimpleFactory ();
SchoolUser su;
su=sf.GetSchoolUser("Principal","Principal");
Console.Write("-------------校长登录---------\n");
su.Show();
Console.Write("-------------教师登录-----------\n");
su=sf.GetSchoolUser("Teacher","Teacher");
su.Show ();
Console.Read(); //读取按键才结束程序,方便查看结果
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?