我正在编写一个遵循MVC模型的小应用程序我有一个Controller类,它启动Model和View类。 Controller类由几个内部私有类组成,这些私有类是AbstractAction
的子类,用于响应GUI事件,设置图标和助记符。
现在我的问题是这个类已经变大了,我有大约300行代码用于7个Action类,所以我正在考虑拆分Controller并将这些Action类放到他们自己的文件中,将它们添加到一个新的controller.actions
包。
然而,动作需要知道模型和视图,换句话说,控制器已经完成的所有事情,这是我首先将它们作为内部类放入Controller的原因。如果我将它们作为单独的类,我将不得不以某种方式引用Controller(传递给构造函数或为Actions创建一个新的抽象基类)。
在不同的类中公开Actions是一个好主意吗?如果是这样,我该如何让他们知道Controller现在知道什么?或者我应该将它们作为内部私人课程?还是其他任何解决方案?