7 Replies to “[技术贴]一次关于MVC的讨论”

  1. 确实,RAD习惯的人写出来的代码满难剥的.我的习惯写代码时先写非UI部分的,然后再写UI,尽量做到业务/功能模块里不要有一行UI代码,UI模块里不要又一行业务代码(调接口除外).具体怎么实现,每个操作平台/FrameWork的的技巧大同小异.

  2. 实现一个Virtual系列的控件包是可能的,但是带来的问题是和现有控件的竞争。这种重新发明轮子的做法并不可取。现在应该思考的是如何配合现有的控件很好的完成UI和控制分离这一工作。当然,最理想的状态就是开发一套控件无关的Framework。

  3. 另外,可能受J2EE领域观念冲击太多,现在我并不是很欣赏那种“一切包办”的框架,我希望的框架是能够充分和现有资源合作的,专注做好自己工作的“轻量级”框架。当然,有没有能力做出这样的框架,那是另外一回事了。

  4. 我最推崇的vcl控件当属Virtual Trees,我对模式不熟悉,但是把UI剥离是我写程序的时候最基本的原则。VirtualTrees做的很好,控件只负责管理node关联的data空间的分配和回收。如果你愿意,完全可以将NodeDataSzie设置为0,这个时候VirtualTrees就真正的virtual了,我比较喜欢这样,在后台管理一个stl的map之类的东西或者更复杂的逻辑,完全就分离了。其实所有其他的UI表现的控件都可以借鉴这个做法,原则上实现一个Vitual系列的控件包没有技术上不可逾越的障碍,可惜没有时间和精力去组织这些东西(当然能力也有缺陷)。如果要上升到Framework,就应该做一个Cross Platform的,将UI的逻辑,和UI元素的表现分离,实现一个平台无关的Canvas,一个鼠标/键盘等的响应等等,可以通过切换不同的平台的后端,来做不同的表现。理想的状态下可以将console下的界面,X系统下的,Win32/64下的UI使用同一套代码来挂接不同的后端来实现,那才叫完美。哈哈,说说而已,请勿拍砖。

  5. 凡事皆有利亦有弊,出发点不同/最终目标不同,自会有不同的结论。不过一个好的框架一定不是包办一切的框架。轻量级的框架之所以吸引人,就是因为其轻量。专注,容易实现,容易学习正好符合现在IT业界的趋势。但另外一个方面,在我眼里,stl本身就是一个这样符合一些“轻量”特征的库。ui一直是我感兴趣的方面,以目前来说我还不知道有一个这样足够抽象,足够专注,接口一致,学习曲线平缓的C++库,我很想看见这样的一个模板库。当然其事件机制不应该基于消息的。

Leave a Reply

Your email address will not be published. Required fields are marked *