回答編集履歴

1 ゲームのメインループを追記

LLman

LLman score 5168

2017/12/02 20:25  投稿

> 基本的にGUIクラスが視点になってプログラムが動いていく
> GUIクラスが主人公で進んでいくような感じ
> 計算するメソッドを持つ側のクラスが主人公になって進むような
> プログラムの書き方はできないでしょうか?
ズバリ簡単に言うと、それは**ゲーム**の方法論ですね。
もちろん、質問者の方はゲーム自体を作りたいわけではないでしょう。
しかし、**イベントドリブン**でなく、GUIに使われるのではなく、
むしろGUIを使うというのは、まさに**ゲームのGUI**の使い方です。
たとえば、ゲームでイベントが起こると、ウィンドウが出たりだとか、
ゲームではゲームの流れが主人公で、それに合わせてGUIを使っていますよね。
だから、「**JavaFX ゲーム**」などで検索して、**ゲーム開発の手法**を学びます。
そして、その手法を作りたいものに応用すればいいわけです。
イメージとしては、ボタンやウィンドウなど**GUIの部品を自作**して、
---
しかし、ビジネスソフトでそういう作り方は主流ではないですよね。
なぜ主流ではないかというと、**手間が掛かりすぎる**からです。
もしかしたら、GUIを上手く使うことで、
操作感が向上するジャンルも、本当はあるのかもしれません。
でも、多くの場合、ボタンなどのGUIは固定しておいて、
素直にイベントドリブンにした方が、**実装コストが低い**から、
ビジネスアプリでは主流になっているわけです。
また、GUIの記述がきゅうくつに感じるなら、いっそGUIを捨ててしまい、
**CLI**でやる方法もあると思います。事前に決めておける選択肢は、
設定ファイルやDSLに外出しすることで、けっこう頑張れると思います。
---
|UI種類|CLI|ビジネスGUI|ゲームGUI|
|:--|:--|:--:|--:|
|実装コスト|低|中|高|
|UI自由度|低|中|高|
さて、ここまでの選択肢を整理すると、上の三つになります。
どれも**一長一短**なので、作りたい物と、
掛けられるコストの兼ね合いで選択してください。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る