デザインパターンだったらFactoryMethodパターンなどで有効かもしれません。
あまり具象的なクラスで例は出しませんが
public abstract class Product {
public abstract void use();
}
public abstract class Factory<T extends Product> {
public final T create(String owner){
//createProductを使ってインスタンスを取得
}
protected abstract T createProduct(String owner);
}
このコードではジェネリックスを使用しない場合、createProductで取得したインスタンスをキャストをしなければなりません。
ジェネリックスを使う場合Factoryで作るインスタンスの型を抽象化する事ができます。
型を抽象化する事によって様々なProductに対応した様々なFactoryを作る事ができます。
分かりづらかったら申し訳ないです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。