using System;
//抽象类
public abstract class SchoolUser
{
public string FName;
public string LName;
public string UserType;
public void show()
{
Console.WriteLine("First Name :{0}", FName);
Console.WriteLine("Last Name :{0}", LName);
Console.WriteLine("User Type :{0}", UserType);
}
}
//具体类 校负责人
public class SchoolPrincipal : SchoolUser
{
public SchoolPrincipal()
{
FName = "David";
LName = "k";
UserType = "principal";
}
}
//具体类 校教师
public class SchoolTeacher : SchoolUser
{
public SchoolTeacher()
{
FName = "Lucky";
LName = "W";
UserType = "teacher";
}
}
//简单工厂,根据登录名和口令动态生成不同的实例
class SimpleFactory
{
public SchoolUser GetSchoolUser(string name,string psw)
{
if (name=="principal"&&psw=="principal")
return new SchoolPrincipal();
else if (name=="teacher"&&psw=="teacher")
return new SchoolTeacher();
else
return null;
}
}
class test
{
static void Main()
{
SchoolUser user1;
SimpleFactory factory = new SimpleFactory();
user1=factory.GetSchoolUser("principal", "principal");
user1.show();
user1=factory.GetSchoolUser("teacher", "teacher");
user1.show();
Console.ReadLine();
}
}