タイトルがわかりにくいかもしれません...コードは次のとおりです。
これは、異なるタイプの異なるオブジェクトをそれぞれ生成するクラスです。たとえば、BookingReferenceExtractor
AircraftExtractor
ここにあるメソッドは一般的です...文字列を取得し、主観的に異なるオブジェクトを返します...
public class ExtractorFactory {
private static ExtractorFactory extractorFactory;
public ExtractorFactory(){
}
public Extractor extractorFor(String extractorType) {
if(extractorType.equals("booking_reference")){
return new BookingReferenceExtractor();
}
else if("itinerary".equals(extractorType)){
return new ItineraryExtractor();
}
else if("passengers".equals(extractorType))
{
return new PassengersExtractor();
}
else if("aircraft".equals(extractorType))
{
return new AircraftExtractor();
}
return null;
}
}
今必要なのは、クラスをジェネリックにすることです...たとえば、コンストラクターにパラメーターを渡すと、他のメソッドにアクセスせずに、主観的にオブジェクトが生成されます。
ExtractorFactory BookingReferenceExtractor_object = new ExtractorFactory("booking_reference");
ExtractorFactory ItineraryExtractor_object = new ExtractorFactory("itinerary");
..
..
基本的に、クラス請負業者と何かをする必要があります。それを一般的にするには、渡された文字列を使用すると、他のメソッドを呼び出さなくても、直接オブジェクトを生成できます。
私はこのツタンカーメンを読んでいます:http://math.hws.edu/javanotes/c10/s5.html私はそれが次のようなことをしているはずだと知っています:
class Queue<T> {
private LinkedList<T> items = new LinkedList<T>();
public void enqueue(T item) {
items.addLast(item);
}
public T dequeue() {
return items.removeFirst();
}
public boolean isEmpty() {
return (items.size() == 0);
}
}
...しかし、ジェネリッククラスに変換する方法が正確にわからない...何か提案はありますか?ありがとう。