Hello, I'm trying to determine the best design for an application that will access several different social network APIs. Here is an interface that I haven't settled on because it just doesn't feel quite right. I'd like to know what would be a better design approach to this problem...
public interface ISocialNetworkAPI<TApiEntity> where TApiEntity : SocialNetworkEntity
{
List<TApiEntity> GetAllFollowersFor(string networkUserName);
List<TApiEntity> GetAllFriendsFor(string networkUserName);
List<long> GetFollowerIdsFor(long networkUserId);
List<long> GetFollowerIdsFor(string networkUserName);
List<long> GetFriendIdsFor(string networkUser);
TApiEntity GetUser(string networkUserName);
}
I'm also planning on using a DI container to inject the appropriate social network concrete object based on the context of the call.