我的当前应用程序有一个DataMgr类,我在其中放置所有与数据相关的内容。这个类最近变得太大了,为了便于维护,我想把它分成更小的部分。
这就是我所想的:
我的问题是:
这就是我启动这个线程的问题:当在SessionsModule中时,如何从UsersDataMgr获取用户信息(例如,通过调用函数getUserData),而不必在SessionsDataMgr中导入UsersDataMgr。因为如果我导入了它,那么它将在SessionsDataMgr中编译.我不想要的。
我希望我没有迷惑你,我希望我能找到一些帮助。
更新1:
因此,基本的问题是,我有一个很大的应用程序,在我来之前设计得很糟糕。现在我正努力让事情变得更好更容易。
目前,编译完整的应用程序需要很长时间(大约3-3:30分钟)。这是由多个问题造成的: 1-框架中的文件太多,每次编译应用程序时都需要检查更改。2-其中一些文件包含大量数据(例如,其中一个信息表被硬编码到一个大小为7.5MB的文件中的一个大fat数组中)。
因此,目前我需要很长时间来修复bug,这是因为编译时间很长。因此,我尝试通过将应用程序分解为模块来解决这个问题。在创建了三个模块之后,我发现每个模块的编译时间也很长(大约2分钟)。
除了这个问题,现在不是一个大型的主权财富基金,我有另外3个大的主权财富基金。因此,我决定从这些模块中删除完整的框架,并且只包含所需的文件。一开始一切都很好直到我加入了DataMgr.在此之后,我必须包含所有的框架,以便在编译过程中没有bug。这是因为DataMgr在其中导入了很多框架。
因此,我解决这个问题的第二步是划分DataMgr。我喜欢你的建议,我正打算这么做.不过,我仍有一个未回答的问题:
我有模块和划分DataMgr的意图是,我不想在每个模块中包含完整的框架。相反,只有所需的文件。但是,如果在SessionsDataMgr模块中,我会调用:
UsersDataMgr.getInstance().getUserInfo( userId );
这意味着我必须在UsersDataMgr中导入SessionsDataMgr.这也意味着(如果我理解正确的话)在编译UsersDataMgr时,编译器将检查SessionsModule的所有文件,但也将检查SessionsDataMgr中的所有文件。这将增加swf的文件大小,并将增加编译时间。
correctly?
中分离出来。
很抱歉给你这么长时间的回复,谢谢你的帮助。
发布于 2011-03-11 15:41:42
从它的声音来看,您的DataMgr类确实试图做得太多了。把它分开绝对是可行的方法。
抽象类旨在提供所有具体实现所需的功能。要提供全局数据访问,您要寻找的设计模式是
如何从SessionsModule获取用户信息
UserDataProvider.getInstance().getAllUsers();
UserDataProvider.getInstance().getUserDetails(UserId:String);希望这能让你走上正轨!如果您能够更多地分享关于您的应用程序和DataMgr的其他职责的细节,我很乐意帮助您制定一个干净、高效的设计。
https://stackoverflow.com/questions/5266404
复制相似问题