2009-04-04 6 views
0

여러 소셜 네트워크 API에 액세스 할 응용 프로그램에 가장 적합한 디자인을 결정하려고합니다. 여기에 내가 정착하지 않은 인터페이스가 있습니다. 왜냐하면 그냥 딱 맞는 느낌이 들지 않기 때문입니다. 나는 또한의 상황에 따라 적절한 소셜 네트워크 콘크리트 객체를 주입하는 DI 컨테이너를 사용하여 계획입니다 ...이 문제에 대한 더 나은 디자인 접근 방식이 될 것입니다 알고소셜 네트워크 응용 프로그램 디자인

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); 
} 

싶습니다 요구.

+0

어댑터 디자인 패턴을 볼 수 있습니다 ... 각 어댑터는 위에있는 인터페이스를 준수합니다. MySpaceAPIAdapter, FacebookAPIAdapter ... – bytebender

답변

2

OpenSocial을 보았습니까? 표준 소셜 네트워크 API에서의 Google의 시도입니다. 아마도 그것을 완전히 사용하지 않는다면 그것을 모델링해야합니다.

+0

그래,이 문제가 해결 된 것을 알고있다. 이것은 실제로 객체 지향 설계에서 더 나은 자신을위한 사고 실험입니다. –

+0

+1 - 좋은 답변입니다. Phil,이 질문을보고 싶을 수도 있습니다. http://stackoverflow.com/questions/575217/whats-a-good-example-for-class-inheritance/575242#575242 위와 같이 자신에게 주어진 임무는 너무 좋습니다. 이미 많은 경험이없는 한 학습 과제로 사용하기가 어렵습니다. –

0

어댑터 디자인 패턴을 볼 수 있습니다 ... 각 어댑터는 위에있는 인터페이스를 준수합니다. MySpaceAPIAdapter, FacebookAPIAdapter ...