インターフェイス API と、このインターフェイスを実装するクラス FacebookAPI および FlickrAPI があるとします。
public interface API {
Photo getPhoto(int id);
Album getAlbum(int id);
}
package api;
import domainObjects.Album;
import domainObjects.Photo;
public class FacebookAPI implements API{
@Override
public Photo getPhoto(int id) {
// TODO Auto-generated method stub
return null;
}
@Override
public Album getAlbum(int id) {
// TODO Auto-generated method stub
return null;
}
}
import domainObjects.Album;
import domainObjects.Photo;
public class FlickrAPI implements API{
@Override
public Photo getPhoto(int id) {
// TODO Auto-generated method stub
return null;
}
@Override
public Album getAlbum(int id) {
// TODO Auto-generated method stub
return null;
}
}
問題は、少なくとも両方の API (facebook と flickr) が photoId を必要とすることだけを知っていることです。ここで、写真を取得するために FacebookAPI には Id に加えて AccessToken が必要であり、FlickAPI には photoId に加えて APIKey + UserId が必要であるとします。
この問題を解決するには、どのデザイン パターンを使用できますか?