外观模式的目的是: 为子系统中的一组接口提供一个高层接口,使得这一子系统更加容易使用。
实例代码:
class User
{
private string name;
public User(string name)
{
this.name = name;
}
public string Name
{
get { return this.name; }
}
}
class UserPrivilege
{
public bool HasPrivilege(User u, Int32 privilege)
{
Console.WriteLine("检查用户权限:" + u.Name);
if (u.Name.Equals("PaoPao") && privilege == 666)
return true;
return false;
}
}
class GroupPrivilege
{
public bool IsPrivilege(User u, Int32 privilege)
{
Console.WriteLine("检查用户组权限:" + u.Name);
GroupList gl = new GroupList(u);
if (gl.GroupNameList.Contains("admin") && privilege == 888)
return true;
return false;
}
}
class GroupList
{
private List<String> groupList = new List<String>();
public List<String> GroupNameList
{
get { return groupList; }
set { groupList = value; }
}
public GroupList(User u)
{
if (u.Name.Equals("PaoPao"))
{
groupList.Add("admin");
groupList.Add("sale");
}
}
}
class Facade
{
private UserPrivilege userPrivilege = new UserPrivilege();
private GroupPrivilege groupPrivilege = new GroupPrivilege();
public bool IsEligible(User user, Int32 privilege)
{
Console.WriteLine("{0}进入认证,权限号{1}", user.Name, privilege);
if (userPrivilege.HasPrivilege(user, privilege))
{
return true;
}
else if (groupPrivilege.IsPrivilege(user, privilege))
{
return true;
}
return false;
}
}
class MainApp
{
static void Main()
{
Facade facade = new Facade();
User user = new User("PaoPao");
Boolean eligable = facade.IsEligible(user, 666);
Console.WriteLine(user.Name + (eligable ? "有权限\n" : "没有权限\n"));
eligable = facade.IsEligible(user, 777);
Console.WriteLine(user.Name + (eligable ? "有权限\n" : "没有权限\n"));
eligable = facade.IsEligible(user, 888);
Console.WriteLine(user.Name + (eligable ? "有权限\n" : "没有权限\n"));
Console.Read();
}
}
实例代码:
class User
{
private string name;
public User(string name)
{
this.name = name;
}
public string Name
{
get { return this.name; }
}
}
class UserPrivilege
{
public bool HasPrivilege(User u, Int32 privilege)
{
Console.WriteLine("检查用户权限:" + u.Name);
if (u.Name.Equals("PaoPao") && privilege == 666)
return true;
return false;
}
}
class GroupPrivilege
{
public bool IsPrivilege(User u, Int32 privilege)
{
Console.WriteLine("检查用户组权限:" + u.Name);
GroupList gl = new GroupList(u);
if (gl.GroupNameList.Contains("admin") && privilege == 888)
return true;
return false;
}
}
class GroupList
{
private List<String> groupList = new List<String>();
public List<String> GroupNameList
{
get { return groupList; }
set { groupList = value; }
}
public GroupList(User u)
{
if (u.Name.Equals("PaoPao"))
{
groupList.Add("admin");
groupList.Add("sale");
}
}
}
class Facade
{
private UserPrivilege userPrivilege = new UserPrivilege();
private GroupPrivilege groupPrivilege = new GroupPrivilege();
public bool IsEligible(User user, Int32 privilege)
{
Console.WriteLine("{0}进入认证,权限号{1}", user.Name, privilege);
if (userPrivilege.HasPrivilege(user, privilege))
{
return true;
}
else if (groupPrivilege.IsPrivilege(user, privilege))
{
return true;
}
return false;
}
}
class MainApp
{
static void Main()
{
Facade facade = new Facade();
User user = new User("PaoPao");
Boolean eligable = facade.IsEligible(user, 666);
Console.WriteLine(user.Name + (eligable ? "有权限\n" : "没有权限\n"));
eligable = facade.IsEligible(user, 777);
Console.WriteLine(user.Name + (eligable ? "有权限\n" : "没有权限\n"));
eligable = facade.IsEligible(user, 888);
Console.WriteLine(user.Name + (eligable ? "有权限\n" : "没有权限\n"));
Console.Read();
}
}


浙公网安备 33010602011771号