- 论坛徽章:
- 2
|
回复 86# sonicling
object-based设计……
如果是从C++开始进行object-based设计,我个人只是不喜欢,还不至于到妄加评论。
但我问题的前提是:在C已经有ADT与对应的一套APIs的情况下。
设计的目的是什么?在此前提下继续再次进行object-based设计又能得到什么?
这只是为设计而设计,就像你说的,强迫症。
玩模板的确实也容易走火入魔。要将特性滥用是很容易的事情。
如果抛开那些耍小聪明的代码,只说特性用到恰到好处的话,模板与object-based本质不同点是:C语言可以胜任object-based,C++在这方面只有少量改进;但C语言无法胜任C++在模板方面的许多工作。
所以C库是有能力完成object-based的设计。回到前提,对这种C库,再次设计一次不会有什么收获,
至于MFC…… 那一大堆的成员函数用自己的m_hWnd转发到win32 gui的代码…… 有意思吗…… 尤其是它还有operator HWND……
F(x,args...)的调用就这么难看,难看到值得花大力气 —— 实现的人先花力气写了,然后又让用的人花力气再学一次 —— 将其"封装"成x.F(args...)才行吗……
|
|