次のような少なくとも2つの異なるクラスがあります。
//NOTE : these two classes have getter and setter also
class Artist {
String artistName;
String artistWebsite;
String artistDbpedia;
String artistImage;
List<String> astistAlbumsName;
List<String> astistAlbumsUrl;
}
class Venu {
String VenuName;
String VenuWebsite;
String VenuDbpdia;
String VenuImage;
String VenuDescription;
List<String> venuFans;
}
xml ファイルを入力として取得し、xml のタイプ (venu/artist) を検出して、入力に基づいて製品オブジェクトの作成を開始するプロデューサー クラスが必要です。
問題 :
上記の2つのクラス間の類似性を集約するためのインターフェースを作成したいので、インターフェースは次のようになります。
interface Model {
public String getImage();
public String getName();
public String getWebsite();
public String getdbpedia();
}
次に、このインターフェイスをビルダー クラスと上記の 2 つのクラスに実装できますが、これらの異なるメソッドはどうですか?
getVenuFans / getArtistAlbumName / など...?
プロデューサーからそれらを呼び出すにはどうすればよいですか?
これは私のビルダーです:
Class Builder implements Model {
public String getImage(){}
public String getName(){}
public String getWebsite(){}
public String getdbpedia(){}
}
これは私のプロデューサーになることができます:
Class Producer {
public Producer()
{
Builder b = null;
//assume Venu and Artist implements Model
b = (Builder) new Venu();
//I don't have access to getVenuFans()!
b = (Builder) new Artist();
//I don't have access to getArtistAlbumsName() / etc...
}
}