私はファクトリメソッドパターンを研究しており、いくつかの場所でリーダーの後、次の実装を行いました。将来、新しいタイプのボードを追加する必要がある場合、そのたびに BoardFactory クラスと列挙型を変更する必要がありますか? これはファクトリメソッドを実装する正しいアプローチですか?
public interface Board { }
public class MotherBoard implements Board { }
public class VideoBoard implements Board { }
public class AudioBoard implements Board { }
public enum BoardType {
VIDEO,
AUDIO,
MOTHER_BOARD
}
public class BoardFactory {
private BoardFactory() { }
public static Board createBoard(BoardType boardType) {
switch (boardType) {
case VIDEO:
return new VideoBoard();
case AUDIO:
return new AudioBoard();
default:
return new MotherBoard();
}
}
}
public class Main {
public static void main(String[] args) {
Board b1 = BoardFactory.createBoard(BoardType.VIDEO);
Board b2 = BoardFactory.createBoard(BoardType.AUDIO);
Board b3 = BoardFactory.createBoard(BoardType.MOTHER_BOARD);
}
}