作者godfat (godfat 真常)
看板Ruby
标题Re: [问题] 一个MVC pattern和composite pattern的 …
时间Fri Oct 12 13:45:32 2007
fix typo
※ 引述《jackace》之铭言:
: 假如我的model中用到composite pattern 例如
:
: A <---- B
: A <---- C
我看不出来这跟 composite pattern 有什麽关系?
composite pattern 是指自己包含自己喔...
如
class Thing; end
class Container < Thing; end
然後 Container 里只能放 Thing, 而 Container 本身也是 Thing,
所以 Container 里可以放 Container.
(不过在 duck typing 下,谈这个意义似乎没有很大)
你的图例看起来只是简单的继承而已
: 那麽在view中 如果要在遇到A,B,C时 在画面上画出不同的图形
: 有办法规避掉
: if(p instanceof A){
: .....
: }else if(p instanceof B){
: .....
: }else if(p instanceof C){
: .....
: }
: 这样的写法吗?
我不知道你为什麽会碰到这个问题,可能要把情形讲得更清楚?
但如果只是单纯有 is_a? switch 的问题,
可以考虑用注册的,如注册到 hash 中。
如果是有双重以上的 dynamic binding 问题,
请洽 multi-method.
p.s. 你是在写 Ruby 吗?看起来不像?比较像 Java 啊...
--
『风车』が廻り続ける度に 『美しき』幻想が静かに纺がれ
『焔』の揺らめきの外に 『腕』を伸ばす愚かな者达 -《Roman》5th Story
『宝石』をより多く掴もうと 『朝と夜』の狭间を彷徨い続ける Track 10
『星屑』の砂の煌めきにも 『葡萄酒』の仄甘い陶酔を魅せ 黄昏の贤者
『贤者』が忌避する槛の中から 『伝言』の真意を彼等に问うだろう
『天使』が别れを告げし时 『地平线』は第五の物语を识る
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.21.237
※ 编辑: godfat 来自: 220.135.28.18 (10/12 23:18)