向旧C++ Spaghetti Coders呈现MVC?

lee*_*d00 7 c c++ model-view-controller

我希望向一群旧的C++意大利面条编码器(在我当地的计算机俱乐部)提出MVC的想法.

其中一个对该组其他人有很大影响的人似乎终于得到了封装的想法(主要是部分归功于这个网站).

我希望通过向他展示模型视图控制器,我也可以指出他正确的方向,但我需要以对他有意义的方式做到这一点,并且它可能需要用C/C++编写!

我意识到MVC是一个非常古老的架构模式,所以在我看来应该有一些可以完成这项工作的东西.

我不仅仅是一名网络开发人员,所以我想知道那里有谁是一个优秀的C/C++编码器可以告诉我是什么让你的MVC灯开关开启了.

小智 9

不要从MVC开始.从发布/订阅开始(AKA是"监听器"模式).

如果没有完全理解听众模式,MVC的优势将永远不会被理解.当某些事情发生变化时,每个人都可以理解更新其他内容的必要性,但很少有人会考虑如何以可维护的方式进行更新.

提出一个接一个的选项,显示每个选项的弱点和优势:使变量成为全局变量,将代码的其他部分合并到变量持有者中,修改持有者以直接通知其他人,最终创建一个标准方法来注册意图听.

然后展示全面听众如何真正发光.写一个小的"模型"类并添加六个"监听器",并展示你如何从不妥协原始类的结构来添加"远程"更新.

一旦你做到这一点,将想法转移到"模型视图"范例.在同一个模型上投放两三个不同的视图,让所有人都惊讶于添加相同信息的不同视图是多么容易.

最后讨论管理视图和更新数据的必要性.请注意,输入部分取决于不在视图或模型中的项目(如键盘和鼠标).介绍集中处理的想法,其中"控制器"需要协调在内存中创建和维护哪些模型,以及向用户呈现哪些视图.

一旦你这样做,你将对MVC有一个很好的介绍.