【发布时间】:2012-11-13 04:28:41
【问题描述】:
在我的应用程序中,我已经分离了下一级应用程序逻辑:
- 实用程序
- 应用抽象
- 应用抽象的简单/通用实现 (#2)
- 具体的应用程序实现(附加函数和类以附加 #3 以适应我们的最终应用程序目的)
- abstract mvc application architecture (abstraction for mvc logic of application)
- 具体的 mvc 应用程序
这些级别的描述:
- 实用程序、库等...(没有依赖关系,可能被任何具体的应用程序类使用)
- 应用程序的抽象类。定义非常应用程序的抽象类(没有依赖关系)
- 抽象应用程序的具体类。定义抽象应用程序的常用具体类(与逻辑级别#2有依赖性)
- 具体(最终)应用程序类。为具体的应用程序模型定义了 finally 类(依赖于逻辑级别 #3 和 #2)
- 应用程序的抽象 MVC 架构。为我们的具体 MVC 应用程序定义抽象(没有依赖关系)
-
具体的 MVC 架构:具体的控制器、视图、模型。具体的应用程序工作流(MVC:视图作为视图,模型作为代理,控制器链接两者)
- 模型是简单的代理,适用于级别 #4(依赖于 #5 和 #4)
- 控制器和视图不知道模型使用什么类(不依赖于任何级别,除了 #5)。
- 模型使用“值对象”(在逻辑 #5 中定义)与视图共享数据
汽车游戏应用示例:
EngineUtils、TrackUtils等等ICar、ITrack、IEngine、ITrackFactory、IEngineFactory等等Car、Track、SimpleEngine、AdvancedEngine、EngineFactory等(实现#2的接口)-
>HondaCar、FordCar、BMWCar、TorontoTrack、TokyoTrack、DushanbeTrack、KualaLumpurTrack、TrackFactory、ExtendedEngineFactory等 ITrackProxy、ICarProxy、CarVo、TrackVo、TrackListVo、CarListVo等等GameController、TrackView、CarView、CarProxy、TrackProxy等等。按模型共享数据视图有CarVo、TrackVo、TrackListVo、CarListVo等
你觉得这个关卡怎么样? 如果没问题,我正在考虑如何在项目中分离所有这些级别? (通过命名空间或库)。如果是命名空间,那么我在命名这个命名空间时会遇到问题......
【问题讨论】:
-
我认为在这种情况下了解您正在使用哪种语言可能会很有用。
-
我正在使用 java。但这有关系吗?问题更多的是特定于架构的平台或语言
标签: oop model-view-controller abstraction business-logic