在我的应用程序中,我分离了下一级应用程序逻辑:
这些级别的描述:
具体的MVC架构的应用:具体的控制器,视图,模型。具体的应用程序工作流程(MVC:作为视图的视图,作为代理的模型,链接两者的控制器)
汽车游戏应用示例:
EngineUtils
,TrackUtils
等
ICar
,ITrack
,IEngine
,ITrackFactory
,IEngineFactory
等等
Car
,Track
,SimpleEngine
,AdvancedEngine
,EngineFactory
等等(实现#2接口)
HondaCar
,FordCar
,BMWCar
,TorontoTrack
,TokyoTrack
,DushanbeTrack
,KualaLumpurTrack
,{{ 1}},TrackFactory
,SuperEngine
等等
ExtendedEngineFactory
,ITrackProxy
,ICarProxy
,CarVo
,TrackVo
,TrackListVo
等等
CarListVo
,GameController
,TrackView
,CarView
,CarProxy
等。按型号< - >视图分享的数据包括TrackProxy
,CarVo
,TrackVo
,TrackListVo
等等
您如何看待这个级别? 如果它没问题,我在考虑如何分离项目中的所有这些级别? (按名称空间或库)。如果是名称空间,那么我有一个命名这个名称空间的问题......
答案 0 :(得分:1)
这与我目前管理项目(使用任何平台/语言)的方式非常相似。
我倾向于将Utilities放在一个单独的项目/库中,并为它提供一个通用的命名空间,比如com.yourdomain.Core或类似的东西。然后,即使在Cars Games之外,也可以创建该库以供任何应用程序使用。
我认为你可以将#2(摘要)和#3(常见的混凝土)放在与抽象应用程序库(#5)相同的文件夹/ package / namespace / project中。我认为除了Cars Games之外没有其他项目需要参考摘要和常见的混凝土,所以你不妨把它们放在抽象的应用程序库中。否则,您可以将#2和#3放在一个库中,并从抽象应用程序库中引用它。
在具体的应用程序中,我将创建特定的类(#4),引用实用程序和抽象应用程序库(包含摘要(包括接口)和常见的混凝土)。