沒(méi)啥好評(píng)論的,貼段代碼。
Composite模式C#實(shí)現(xiàn):用戶(hù)及用戶(hù)組權(quán)限設(shè)置,一個(gè)組內(nèi)的用戶(hù)權(quán)限相同。
//用戶(hù)和組的父接口
public interface userbase
{
void AddChild(userbase u); //添加子文件夾
void SetPurview(string purview);//設(shè)置權(quán)限
}
//用戶(hù)類(lèi)
public class user : userbase
{
private string purview = "";
public void AddChild(userbase c)
{
//用戶(hù)下面沒(méi)有用戶(hù),所以為空
}
public void SetPurview(string strPurview)
{
//設(shè)置用戶(hù)的權(quán)限
purview = strPurview;
}
}
//用戶(hù)組類(lèi).
public class group : userbase
{
private ArrayList userlist = new ArrayList();
public void AddChild(userbase c) //添加用戶(hù)
{
userlist.Add(c);
}
public void SetPurview(string strPurview)
{
foreach (userbase u in userlist)
u.SetPurview(strPurview);
}
}
class MyMain
{
public static void Main()
{
//創(chuàng)建用戶(hù)組
group group1 = new group();//用戶(hù)組1
user user1 = new user();//用戶(hù)1
user user2 = new user();//用戶(hù)2
user user3 = new user();//用戶(hù)3
//添加兩個(gè)用戶(hù)到組中
group1.AddChild(user1);
group1.AddChild(user2);
group1.SetPurview("權(quán)限1");//設(shè)置組權(quán)限,則設(shè)置了組內(nèi)的用戶(hù)權(quán)限
user3.SetPurview("權(quán)限2");//設(shè)置用戶(hù)3的權(quán)限
}
}
回復(fù) 更多評(píng)論