使用抽象工厂模式的AdModule架构

时间:2016-02-02 06:58:44

标签: c# design-patterns unity3d architecture

UML Diagram

我将其作为Unity中的示例项目。 AdManager是单身Monobehaviour所有其他实体都是C#文件。我想讨论这个模块的架构。该图表不完整,因为该工具的免费版本仅支持这一点。我的基本要求很简单制作广告模块,在多个广告网络上展示广告。可以轻松集成到任何项目中。

我是如何实现它的:客户端只与AdManager交互,AdManager将使用AbstractFactory模式提供PlatformAdController。 AdNetworkController将实施其相应的AdNetwork。然后根据需要,可以在PlatformAdController中存在多个(Waterfall)AdNetworkController。

我是朝着正确的方向前进的吗?

界面有什么好名字?

如何实现下层(AdNetwork)层,即是否需要interface / baseClass?

1 个答案:

答案 0 :(得分:0)

Unity已经构建了平台指令。在编译时使用它们以获得更好的性能。在此处阅读更多内容:http://docs.unity3d.com/Manual/PlatformDependentCompilation.html

您的方法还可以,但是如果某些广告控制器需要其他操作(例如更新其状态或其他内容),您必须向接口添加新方法,这将与其他100500实现一起使用。您还可以创建基类AdsBase : IAds类,并使空虚拟方法存根不会覆盖不需要它们的类中的每一个