Composite模式C#实现

实现用户及用户组权限设置,一个组内的用户权限相同。

 1 // 用户和组的父接口
 2 public   interface  userbase
 3 {
 4    void AddChild(userbase u); //添加用户或组
 5    void SetPurview(string purview);//设置权限
 6}

 7 // 用户
 8 public   class  user : userbase
 9 {
10    private string purview = "";
11
12    public void AddChild(userbase c)
13    {
14       throw new Exception("方法不支持!");
15
16    }

17
18    public void SetPurview(string strPurview)
19    {
20        //设置用户的权限
21        purview = strPurview;
22    }

23}

24 // 用户组类.
25 public   class  group : userbase
26 {
27    private ArrayList userlist = new ArrayList();
28
29    public void AddChild(userbase c) //添加用户
30    {
31        userlist.Add(c);
32    }

33
34    public void SetPurview(string strPurview)
35    {
36        foreach (userbase u in userlist)
37            u.SetPurview(strPurview);
38    }

39}

40
41 class  MyMain 
42
43public static void Main() 
44
45         //创建用户组
46        group group1 = new group();//用户组1
47        group group2 = new group();//用户组2
48        user user1 = new user();//用户1
49        user user2 = new user();//用户2
50        user user3 = new user();//用户3
51       
52
53        //添加两个用户到组中
54        group1.AddChild(user1);
55        group1.AddChild(user2);
56
57        group2.AddChild(user1);
58
59        group2.AddChild(group1);
60
61        group1.SetPurview("权限1");//设置组权限,则设置了组内的用户权限
62        group2.SetPurview("权限2");
63
64        user3.SetPurview("权限2");//设置用户3的权限} 
65}
 
66
67


你可能感兴趣的:(Composite模式C#实现)