Лучшая практика для упаковки сторонней службы в библиотеку

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

Например:

user_id = ThirdParty.get_user("abc@gmail.com")
photos = ThirdParty.get_photos(user_id)

ИЛИ

thirdpartyservice = ThirdPartyService.new("abc@gmail.com")
photos = thirdpartyservice.get_photos

Это не обязательно должно быть точным дизайном библиотеку, но меня просто смущают плюсы и минусы каждого подхода. Любая помощь будет потрясающей!

Кстати, я использую рубин!

5
задан Michael Kohl 25 April 2011 в 15:34
поделиться