Qual é o design do sistema correto ao lidar com API de terceiros?

estepublicação no blog por Joubert acabou de abrir meus olhos. Eu lidei com muitos padrões de design em Java e outras linguagens. Mas o Objective-C é uma linguagem bastante única.

Digamos que em um projeto falamos com uma API de terceiros, como Dropbox ou Facebook. O que tenho feito até agora é combinar tudo que tem a ver com a API de terceiros em uma classe singleton. Para que eu possa acessar a classe de qualquer lugar nos meus controladores de exibição. Eu posso apenas ir por exemplo:[[DropboxModel sharedInstance] uploadFile:aFile]

No entanto, como observou a postagem do blog, isso não é eficiente e leva a códigos de espaguete e testes de unidade ruins. Então, qual é a melhor maneira de projetar o sistema para que ele seja modular e fácil de usar?

questionAnswers(3)

yourAnswerToTheQuestion