Лучший шаблон дизайна для передачи файлов в социальных сетях - PullRequest
1 голос
/ 31 марта 2010

Наша система хотела бы, чтобы наши клиенты связывали свои учетные записи с различными социальными сетями, такими как youtube, vimeo, facebook, myspace и так далее.

Одним из преимуществ, которые мы хотели бы предоставить пользователю, является передача, обновление и удаление файлов, которые они загрузили на наши сайты, и передача их на сайты социальных сетей, упомянутые выше. это могут быть видео, изображения или аудио.

Мы начали задумываться об использовании шаблона стратегии, поскольку все эти сайты имеют общий процесс (аутентификация, подключение, использование API для передачи / редактирования / удаления файла), но вскоре мы поняли, что он может не работать как я может потребоваться использовать некоторые расширенные функциональные возможности, характерные для каждой службы (например, связать видео YouTube с каналом или загрузить изображения в определенный альбом на Facebook и многое, многое другое ...)

У меня вопрос: какой бы лучший шаблон проектирования конструкций для этого сценария?

1 Ответ

1 голос
/ 31 марта 2010

Я бы на самом деле разделил службы, к которым вы пытаетесь подключить своих пользователей, на такие группы, как:

  • Видеоуслуги
  • Фотоуслуги
  • службы мгновенных сообщений и т. Д.

Для каждой группы у вас может быть общий интерфейс, который вы будете реализовывать. Конечно, каждый сайт социальной сети может иметь несколько интерфейсов. Также я бы добавил специальные точки расширения для этих интерфейсов, которые позволят вам повторно использовать что-то специфичное для каждого сайта.

Например, в стандартной форме вы будете использовать этот метод:

videoService.upload(chanel, playlist, file) 

Если сайт поддерживает что-то особенное, что вы не можете поместить в общий интерфейс, тогда вызывайте его с расширенными свойствами:

if (videoService.getSiteName() == "YouTube") {
   videoService.upload(chanel, playlist, file, extendedProperties) 
}
...