, 현재이 동영상은, 때문에 다른 공급자를 허용하지 않는 구현, YouTube에서 할 수 있습니다 미리보기 이미지와 같은 비디오 데이터는 비디오를 표시하는보기 도우미에 직접 배치되었습니다.전략 패턴의 좋은 활용 사례입니까? 코드가를 얻을 수 있기 때문에
Vimeo와 같은 새 공급자를 쉽게 추가 할 수 있도록이 구조를 변경하고 싶습니다. 전략 패턴이 이상적이라고 생각합니다. 내보기 도우미의 메서드 setVideoUrl(string $url)
에이 메서드가 호출됩니다. class VideoProviderFactory
에서 방법 getProviderStrategy(string $url)
은,이 팩토리 클래스는 다음 경우 사용할 수, 반환, 비디오 URL의 공급자의 interface VideoProvider
를 구현하는 전략 클래스.
당신은 어떻게 생각하십니까? 이게 맞습니까? 나는 뭔가를 바꿀 필요가 있니?
세부 사항 : 처음에는 전략을 직접보기 도우미로 선택하는 것에 대해 생각했지만이 질문을 읽은 후 : Strategy Pattern with no 'switch' statements? 나는 내가 틀렸다는 것을 알았고 class VideoProviderFactory
이 나타났습니다. 책임의 적절한 분리와 함께, 아주 좋은 디자인과 같은
좋습니다. 이해할 수없는 유일한 이유는 중간 VideoProviderMatcher 인터페이스가 필요한 이유입니다. 해당 기능을 VideoProvider 클래스의 일부로 구현할 수 없습니까? – hennes
@hennes IMO, VideoProviderMatcher는 더 추상적 인 URL을 이해합니다.matcher는 기본적으로 url/도메인의 도메인/부분과 같은 다양한 조건에서 URL을 필터링하도록 구현을 허용 할 수 있습니다. – Nrj
좋습니다. 명확히 해 주셔서 감사합니다. – hennes