红色石头
热情的血液+石头的冰冷
随笔- 25  文章- 12  评论- 43 
博客园  首页  新随笔  联系  管理  订阅 订阅
Composite模式C#实现

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

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

 7//用户
 8public 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//用户组类.
25public 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
41class 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


posted on 2006-07-31 23:22 红色石头 阅读(169) 评论(2) 编辑 收藏
刷新评论刷新页面返回顶部
程序员问答社区,解决您的IT难题
博客园首页博问新闻闪存程序员招聘知识库
Copyright ©2012 红色石头