ファクトリメソッドで作成する正しいオブジェクトを使用するenumかStringディスパッチする方が良いですか?static
例String:
public static Car createCar(String carName){
if(carName.equals("Ferrari")){
return new Ferrari();
}
else if(carName.equals("Porsche")){
return new Porsche();
}
....
}
例enum:
public static Car createCar(CarEnum carEnum){
if(CarEnum.FERRARI.equals(carEnum)){
return new Ferrari();
}
else if(CarEnum.PORSCHE.equals(carEnum)){
return new Porsche();
}
....
}
今のところ、私によると:
使用する利点enum:
- ユーザーが未処理のファクトリを呼び出すことは避けてください
carName。
使用の欠点Enum:
enumへの変更(たとえば、 にFERRARIなる) にはクライアントでの変更が必要になるため、依存関係を増やします。ENZO_FERRARIただし、クライアント コードを再コンパイルせずにインスタンスにStringリダイレクトできます。もちろん、リダイレクト先の古い値を使用してクライアントに対して同じことを行うこともできますが、私にとっては、クライアントと互換性を持たせるために古い値を保持する必要があることを意味します...私には意味がありません.FerrariEnzo FerrarienumFERRARIENZO-FERRARI enumenum
この件についてあなたの意見はどうですか?