![]() |
Одно приложение для нескольких соц. сетей
Привет.
Меня интересует структура одного приложения (организация системы доступа к api) для нескольких соц. сетей. К примеру мы выяснили в какой соц сети запущено приложение. Дальше нам необходимо запостить на стену (vk)/ленту (ok) сообщение. Как это делаю я. Создал интерфейс iSocialManager и 2 Класса, которые его имплементируют: VKManager и OKManager. iSocialManager - содержит весь набор методов, которые реализуют VKManager и OKManager. Меня смущает то, что в Классе VKManager есть метод (к примеру getImageUploadServer), который не используется в OKManager тем не менее я вынужден его создать в OKManager (хоть и пустым). Выходит, что OKManager содержит пустые методы, которые используются в VKManager и наоборот. Как это выглядит на AS: Код AS3:
Код AS3:
Не делать, ведь, 2 флешки для 2-х соц сетей. Спасибо. |
2 флэшки и интерфейс
|
Первый, на мой взгляд, изящнее.
В интерфейсе имеет смысл указывать только общие методы (postMessage, inviteFriends, showPayment). Как они называются в реальной соц сети нам без разницы, это уже в реализации каждого класса будете закладывать. Но если в какой-то соц сети есть уникальный метод, который необходимо выполнить, то зная что у вас Код AS3:
Код AS3:
|
GBee, то-есть 2 fla файла но разный MainClass? Расскажите по подробнее.
KBAC, спасибо, отличный пример. |
Ага. В принципе.
ИМХО: Все упирается в "уникальные" возможности соцсети. В ВК больше выбор, сответственно флэшки могут отличаться наличием тех или иных кнопок, вешать все это на призрачную простоту if(socialType="vk") по мне так излишне. Поэтому должно быть "ядро" программы работающее с интерфейсами (ISocialManager, ISocialFeatures например). Ядро вообще ничего не знает про ВК, ОК, ММ, ФБ. И соцсетевые классы, реализующие эти интерфейсы (VKManager, OKManager). Разные MainClass, каждый из которых пихает в ядро свой набор классов. Код AS3:
Таким образом вы легко прикрутите другие соцсети. |
GBee, но ведь так и получается, только вместо "призрачной простоты if(socialType="vk")" предлагаете использовать разные классы, которые по сути будут выполнять то же самое, ведь всё равно в ядре закладываете весь всевозможный функционал, судя по вашим словам.
В случае с if, прикручивание соц сети будет точно такое же простое (добавляем ещё один else if). Так что на вкус и цвет) Ну и разные MainClass кому-то могут быть елементарно нагляднее и удобнее, это да. |
У меня на каждую сеть по одной паре классов (ConnectorAPI и WallPostSender). Приложение само по себе не заморачивается о том, в какой сети открылось и обращается к функционалу через SocialNetwork.connectorAPI и SocialNetwork.wallPostSender.
Определение, в какой сети открылись, в самом начале, тогда же производится и установка всех стетевых параметров. Кстати, насчет разного функционала сетей - надо гнуть геймдизов на единый интерфейс и единые социальные функции. Основное различие в публикации на стену (ВК) или в ленту новостей (ММ, ОК). Но за счет применения разных текстов вполне можно выкрутиться. Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Можно сделать иначе - поставить сервер, к которому приложение после запуска будет отсылать appID, полученный от соцсети, и сервер будет выдавать всю необходимую информацию для работы (где открылись, к каким серверам стучаться, где лежат файлы данных и пр.). Добавлено через 2 минуты Цитата:
Потому что с технической точки зрения у меня к ним претензий нет. Все работает. Еще бы ММ на мэйлики перешел окончательно и вообще красота. Цитата:
|
| Часовой пояс GMT +4, время: 08:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.