我有一个旧的、非常大的Perl Tk GUI应用程序,现在正在重构为Tkx。我想将界面分成几个软件包,以便可以模块化地建立应用程序UI,同时,我想保持视图与模型的分离,使用控制器来提供两者之间的接口。
在我看来,设计这个应用程序的唯一方式是使用两个巨大的全局变量,一个保存模型($MODEL),另一个保存跨越许多软件包的小部件的引用($UI)。然后,控制器使用以下一系列命令来相互配合:
我的问题是:有没有更好的设计应用程序的方法,避免使用这两个大全局变量($UI和$MODEL)?任何建议都非常欢迎。
在我看来,设计这个应用程序的唯一方式是使用两个巨大的全局变量,一个保存模型($MODEL),另一个保存跨越许多软件包的小部件的引用($UI)。然后,控制器使用以下一系列命令来相互配合:
$UI->{'entry_widget'}->configure(-variable=>\$MODEL->{'entry_value'});
$UI->{'button_widget'}->configure(-command=>sub {$MODEL->{'entry_value'} = "New Value"} );
我的问题是:有没有更好的设计应用程序的方法,避免使用这两个大全局变量($UI和$MODEL)?任何建议都非常欢迎。