※ [本文转录自 C_and_CPP 看板 #1NwFzdvb ]
作者: henry8168 (番薯猴) 看板: C_and_CPP
标题: [问题] 组合模式(Composite Pattern)到底是什么
时间: Mon Sep 26 18:58:41 2016
在FB的靠北工程师看到一篇文
https://goo.gl/u8dTYM
这种语法确实很冗长,然后看到留言有一个回复说要善用组合模式。
我就很好奇组合模式是什么,Google了一下,找到这4份网页,
http://www.one-tab.com/page/CRw70YIPR0Ky9az36aOG8Q
每一个都提到leaf、add、remove,但有看没有懂,
请问有高手能解释一下组合模式什么概念吗?
套用组合模式后,靠北工程师的那份Code又会变成怎样的?
希望能够让我听懂,200P将奉上给第一位解答者,感激不尽
作者:
chuegou (chuegou)
2015-09-26 19:01:00合成?
作者:
Caesar08 (Caesar)
2015-09-26 19:24:00请善用TMP
作者:
pttworld (批踢踢世界)
2015-09-26 19:32:00later的考虑switch case的fallthrough,要很小心。
作者:
Caesar08 (Caesar)
2015-09-26 20:59:00Template MetaProgramming的简称
作者:
tinlans ( )
2015-09-26 21:37:00让全部的东西继承同一个 base,然后串成树状结构而已。compiler 的 AST 那类东西一般都能用这种结构做
作者:
bluesoul (å¿™æ»ä½ è€çˆ¸)
2015-09-26 21:42:00直觉想到是多型或是责任链
作者:
tinlans ( )
2015-09-26 21:43:00至于为什么这东西可以解那问题,我也想不透 XD
作者:
bluesoul (å¿™æ»ä½ è€çˆ¸)
2015-09-26 21:44:00合成模式应该是用来表达层状结构的
作者:
tinlans ( )
2015-09-26 21:46:00这鬼东西,一般的 factory + strategy 和基本多型概念就可以解了,FB 那下面不知道在反串什么
作者:
bluesoul (å¿™æ»ä½ è€çˆ¸)
2015-09-26 21:50:00我也觉得用错pattern
作者:
tinlans ( )
2015-09-26 21:51:00不然就是那个“组合模式”是其它英文的中译还有其实这算 OOAD 板的范围,那边板主很伤心 XD
作者:
descent (“雄辩是银,沉默是金”)
2015-09-26 22:09:00你直接请他给一个 sample code 就好了。是不是嘴炮马上就知道了。解决这问题哪是这么简单劳一句话就好。