我正在使用一个需要接收多个视频并将它们显示在特定页面上的应用程序,目前这些视频只能来自 YouTube,由于不允许其他提供商的实现,因为获取视频数据的代码,作为预览图,直接放在了负责显示视频的View Helper中。
我想更改此结构以方便添加新的提供程序,例如 Vimeo,并且我认为 Strategy 模式将是理想的,我将在我的 View Helper 中有方法setVideoUrl( string $url )
,此方法将从中调用方法getProviderStrategy( string $url )
,class VideoProviderFactory
这然后,工厂类将返回(如果可用)interface VideoProvider
为视频 url 的提供者实现 , 的策略类。
你怎么看?这是对的?我需要改变一些东西吗?
细节:我最初考虑在 View Helper 中直接放置一个选择策略的开关,但在阅读了这个问题后:I Strategy Pattern with no 'switch' statements?我看到我错了,然后class VideoProviderFactory
出现了。