社区
Java
帖子详情
有个设计模式的问题向各位求解!
mycafe
2004-11-22 10:08:19
1.有100个人和50个文件,每个人负责其中一份文件的管理,
2.每份文件都有自己的某些操作属性,比如增删改(但每个文件的全部操作不同,有的有增删没有改)
3.每个人对自己所管理的那份文件设置操作权限(在文件的全部操作属性中选择)
简单描述就是: 人 * --- 1 文件; 文件1 -- * 操作
问题就是,如何将人与操作建立关联? 人与操作的关联表(权限)该如何设计?
...全文
125
4
打赏
收藏
有个设计模式的问题向各位求解!
1.有100个人和50个文件,每个人负责其中一份文件的管理, 2.每份文件都有自己的某些操作属性,比如增删改(但每个文件的全部操作不同,有的有增删没有改) 3.每个人对自己所管理的那份文件设置操作权限(在文件的全部操作属性中选择) 简单描述就是: 人 * --- 1 文件; 文件1 -- * 操作 问题就是,如何将人与操作建立关联? 人与操作的关联表(权限)该如何设计?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
launch401
2004-11-22
打赏
举报
回复
刚才理解错了,这个可以用observer模式:
在文件类中维护每一个Operation是否enbale的map,可以在这上面修改每个文件所拥有的操作权限范围;还要维护一个Person的数组,表示这个文件有哪些owner。
然后当map发生变化时,立刻通知Person数组的每一个Person。Person类中维护一个每一个Operation是否对用户可用的boolean数组。当接到通知后就要更改这个boolean数组。当然,Person中也提供对这个数组的操作以实现每个人的操作权限的设置。
总之,FileClass就是subject,Person就是observer,具体实现有很多变形了。
class Person{
FileClass f;
boolean[] list;
}
interface Operation{
...
}
class FileClass{
Map map;//operation|enable
Person[] ps;
}
mycafe
2004-11-22
打赏
举报
回复
说白了这就是个穿透两个层次的关联关系,
就是,人,在指定文件的操作范围内,设置自己的操作权限。
楼上的代码搞不定,再说我也不是java代码的问题,
人 * --- 1 文件; 文件1 -- * 权限 分别实现都很容易,但是再由 人 * -- * 权限的问题,
我希望每个文件的操作权限范围可设置,每个人的操作权限可设置。
launch401
2004-11-22
打赏
举报
回复
class person{
FileClass f;
}
class FileClass {
boolean canAdd();
boolean canDelete();
boolean canModify();
}
launch401
2004-11-22
打赏
举报
回复
更正一下,Person中应该维护一个map而不是boolean数组,
class Person{
FileClass f;
Map map1; //operation|useable
//这个map中的所有operation一定是enbale的。
}
当Person收到FileClass更改的通知时,根据FileClass中map的值来增删map1中的pair。
2010春节前巨献:推箱子游戏
一旦美女拿到鲜花,就会变清晰并有一个小鲜花标志。 5. 自动
求解
功能,选择自动后,可用两种播放模式:自动播放将自动从头到尾播放,单步执行(每次要用鼠标点击)可以一步一步执行。 6. 使用过程中有任何
问题
,请...
关于C的精粹包含至少200个C语言小程序
204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏...
matlab常微分方程
求解
matlab常微分方程
求解
,通过编程实战掌握具体应用。包括matlab常微分方程
求解
前、matlab常微分方程
求解
中、matlab常微分方程
求解
后。
200个经典C程序源码小游戏
204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 ...
200个经典C程序【源码】
204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 207 商人过河游戏 208 吃数游戏 209 解救人质游戏 210 打字训练游戏 211 双人竞走游戏 212 迷宫探险游戏 213 迷你撞球游戏...
Java
50,550
社区成员
85,621
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章