我有一个旧的非常大的 Perl Tk GUI 应用程序,我正在重构为 Tkx。我想把界面分成几个包,这样我就可以以模块化的方式构建应用程序 UI。另外,我想将视图与模型分开,使用控制器在两者之间提供接口。
在我看来,设计它的唯一方法是使用两个巨大的全局变量,一个保存模型 ($MODEL),另一个保存对分布在许多包中的小部件 ($UI) 的引用。然后,控制器使用一系列命令将两者连接起来,如下所示:
$UI->{'entry_widget'}->configure(-variable=>\$MODEL->{'entry_value'});
$UI->{'button_widget'}->configure(-command=>sub {$MODEL->{'entry_value'} = "New Value"} );
我的问题是:有没有更好的方法来设计避免使用这两个大的全局变量($UI 和 $MODEL)的应用程序?任何建议都会非常受欢迎。