Re: [請益] 這種情況有比 Decorator 更好的模式嗎?
這邊想問個問題
在PHP使用時
好比說我的decorate有A,B,C
component為 X
之後如下包裝
object = new X();
objecjt = new A(object);
objecjt = new A(object);
objecjt = new A(object);
objecjt = new A(object);
objecjt = new A(object);
objecjt = new A(object);
這樣我就算裝飾時沒做任何事,只有被裝飾後有多委任的功能
可是在測記憶體時卻會愈來愈肥大
Object(A){Object(A){Object(A){Object(A){Object(A){Object(A){Object(X)}}}}}}
這在decorator的設計模式是正常的嗎?
還是是語言的特性關係造成的呢?
我目的是想被裝飾時就多該裝飾的Method,
並不用改寫什麼值
所以像這樣是使用上的例外還是我不該用這設計模式來做我想做的目的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.38.210
→
12/16 14:23, , 1F
12/16 14:23, 1F
→
12/16 14:23, , 2F
12/16 14:23, 2F
→
12/17 14:59, , 3F
12/17 14:59, 3F
我要問的其中一個問題是
這是Decorator的特性嗎?
因為每裝飾一次就多包一次上一個自己
這樣很佔記憶體
※ 編輯: dlikeayu 來自: 111.249.154.151 (12/17 17:06)
→
12/17 21:36, , 4F
12/17 21:36, 4F
→
12/17 21:37, , 5F
12/17 21:37, 5F
不是
如果是每裝飾一樣就等於多穿一件衣服還好
但是現在是每裝飾一次就等於再多背一個人在背後(真飄)
因為我直接print出裝飾過幾次的物件
它除了新的裝飾外,還外包上一個自己
而上一個自己還會包上上一個自己
※ 編輯: dlikeayu 來自: 111.249.154.151 (12/18 01:01)
→
12/18 11:46, , 6F
12/18 11:46, 6F
→
12/18 11:47, , 7F
12/18 11:47, 7F
→
12/18 11:51, , 8F
12/18 11:51, 8F
討論串 (同標題文章)
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章