我将其作为Unity中的示例项目。 AdManager是单身Monobehaviour所有其他实体都是C#文件。我想讨论这个模块的架构。该图表不完整,因为该工具的免费版本仅支持这一点。我的基本要求很简单制作广告模块,在多个广告网络上展示广告。可以轻松集成到任何项目中。
我是如何实现它的:客户端只与AdManager交互,AdManager将使用AbstractFactory模式提供PlatformAdController。 AdNetworkController将实施其相应的AdNetwork。然后根据需要,可以在PlatformAdController中存在多个(Waterfall)AdNetworkController。
我是朝着正确的方向前进的吗?
界面有什么好名字?
如何实现下层(AdNetwork)层,即是否需要interface / baseClass?
答案 0 :(得分:0)
Unity已经构建了平台指令。在编译时使用它们以获得更好的性能。在此处阅读更多内容:http://docs.unity3d.com/Manual/PlatformDependentCompilation.html
您的方法还可以,但是如果某些广告控制器需要其他操作(例如更新其状态或其他内容),您必须向接口添加新方法,这将与其他100500实现一起使用。您还可以创建基类AdsBase : IAds
类,并使空虚拟方法存根不会覆盖不需要它们的类中的每一个