Re: [请益] 这种情况有比 Decorator 更好的模式吗?

楼主: bill42362 (酒池肉林夜夜生科)   2013-10-12 22:51:15
※ 引述《bill42362 (酒池肉林夜夜生科)》之铭言:
: A {
: methodX();
: methodA();
: }
: B {
: methodX();
: methodB();
: }
: C {
: methodX();
: methodC();
: }
我想要的效果大概是这样:
以 facebook 的分享来举例
A 是分享图片的物件,B 是影片的物件,C 是文章的物件
三个物件都有一个 display() 的 method (对应 methodX())
但是 A 的实作是贴图,B 的实作是显示某一画格,
C 的实作则是显示文字。
A 有专属的 zoom() method (对应 methodA())
B 则是 play() (methodB())
C 是 copy() (methodC())
而我想动态加上的 methodY(), methodZ() 则可能是根据
权限决定是否加上的 share(), vote(), edit(), delete()
比如甲因为是作者,所以为他加上 edit() 和 delete()
同一个物件乙看到时可能只有 vote()
而丙因为是甲的好友,所以可以 share(), vote()
希望这样有解释的更清楚一点,
我希望实作出来的系统也就跟这个例子差不多了,
所以如果这样的想法从根本上就错也请直接吐槽 囧
再次感谢大大花时间看完!!

Links booklink

Contact Us: admin [ a t ] ucptt.com