【发布时间】:2012-04-16 02:20:55
【问题描述】:
我正在使用一个需要接收多个视频并将它们显示在特定页面上的应用程序,目前这些视频只能来自 YouTube,由于不允许其他提供商的实现,因为要获取的代码视频数据,作为预览图,直接放在负责显示视频的 View Helper 中。
我想更改此结构以方便添加新的提供程序,例如 Vimeo,并且我认为策略模式将是理想的,我将在我的 View Helper 中有方法 setVideoUrl( string $url ),此方法将调用class VideoProviderFactory 中的方法 getProviderStrategy( string $url ),如果可用,该工厂类将返回实现 interface VideoProvider 的策略类,用于视频 url 的提供者。
你怎么看?这是对的?我需要改变一些东西吗?
详情:本来想在View Helper里面直接放一个选择策略的开关,但是看了这个问题后:我Strategy Pattern with no 'switch' statements?看到我错了,然后class VideoProviderFactory就出现了。
【问题讨论】:
标签: php design-patterns language-agnostic factory-pattern strategy-pattern