• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
红色石头
热情的血液+石头的冰冷
博客园    首页    新随笔    联系   管理    订阅  订阅
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  红色石头  阅读(546)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3