一次关于用MVC改进GUI应用开发的讨论

本文讨论了如何使用MVC模式改进GUI应用开发,以减少耦合度和提高可测试性。作者与令狐就VCL中Action的概念和MVC支持的不足进行了讨论,提出了Action、State和Constraint作为V和C之间关系的抽象。他们还解决了Windows控件响应与逻辑处理的同步问题,以及环境上下文在GUI和Web应用中的传递。虽然实施过程中面临挑战,但MVC模式被视为提高GUI应用可维护性和灵活性的有效途径。
摘要由CSDN通过智能技术生成

昨天临下班前跟猎手讨论了一个技术问题。今天令狐看了,指出这个解决方法治标不治本,属于头痛医头脚痛医脚的解决方案:

但要是你直接取parent的ActiveControl,这个窗体不嵌入其他窗体的时候不是又错了?换句话说,这个窗体跟它的使用环境发生了耦合。有没有比较好的办法来解决这个问题?

我说了三个方法,前两个都不算是通用的办法,就不说了。第三个就是我在《杂而不精》一文里我提到过的MVC模式。在这一点上,我和令狐达成一致。针对猎手这个问题使用MVC,可以把这部分功能从View剥离到Control上去处理。

关于MVC,令狐有一段说明:

MVC的概念我的Blog里有提到。简单的说,就是把界面、界面需要完成的功能、这些功能所要操作到的数据对象全部分离。这样一来,比如你界面上有一个按钮和一个菜单完成同样的功能,就只要调用功能类中同样的方法即可,跟这个按钮、菜单所在的界面就无关了。

VCL中有一个Action的概念,但光有这个,支持MVC开发是远远不够的。这也是我在《

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值