Composite模式C#实现

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

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

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

17InBlock.gif
18InBlock.gif    public void SetPurview(string strPurview)
19ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
20InBlock.gif        //设置用户的权限
21InBlock.gif        purview = strPurview;
22ExpandedSubBlockEnd.gif    }

23ExpandedBlockEnd.gif}

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

33InBlock.gif
34InBlock.gif    public void SetPurview(string strPurview)
35ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
36InBlock.gif        foreach (userbase u in userlist)
37InBlock.gif            u.SetPurview(strPurview);
38ExpandedSubBlockEnd.gif    }

39ExpandedBlockEnd.gif}

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


转载于:https://www.cnblogs.com/WhiteCloud/archive/2006/07/31/464484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值