jButton を使用する小さなアプリケーションを作成しています。この質問のために、これを と呼びますnextButton
。プログラムのライフサイクル全体で jButton の機能を変更するのは悪い設計ですか? ステートマシンのようなものです。
つまりnextButton
、アプリケーションのモードをクリックするたびに、次の「状態」に遷移し、それに応じてビューが変更されます。
すなわち
class NextButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
ServiceMode mode = model.getMode();
switch (mode) {
case SELECT:
// alter view and give nextButton function1
...
model.setMode(ServiceMode.CHECK);
break;
case CHECK:
// alter view and give nextButton function2
...
model.setMode(ServiceMode.COPY);
break;
case COPY:
// alter view and give nextButton function3
...
model.setMode(ServiceMode.END);
break;
case END:
// alter view and give nextButton function4
...
break;
}
}
}
それぞれ独自の機能を持つ新しいボタンをインスタンス化する方が良いですか? それとも、できれば1つのボタンに複数の機能を持たせたほうがよいのでしょうか?