GUIの状態管理は線形では表せない
---take1
まず、「GUI(グラフィカルユーザーインターフェース)」というのは、コンピュータの画面上にある、色んな形のボタンやメニュー、アイコンなんかのことを指しています。これらを見て、マウスやタッチパネルを使って操作するのが、普通のコンピュータの使い方ですね。
次に、「状態管理」について考えてみましょう。ここでいう「状態」は、ある瞬間のコンピュータやアプリの様子を指します。例えば、ネットのブラウザを開いているか、ワードで文書を書いているか、といった状態です。そして、「状態管理」は、それらの状態をどのように移り変わらせていくかを管理することです。
さて、「線形」という言葉は、一本の直線のように、一つずつ順番に進んでいくことを意味します。しかし、GUIの状態管理は、これが適用できません。それはなぜかというと、コンピュータを使う人が、いつでも好きなところをクリックしたり、別のアプリに移ったりできるからです。
それを理解するために、一緒に遊びのイメージを考えてみましょう。例えば、「すごろく」ゲームと「自由研究」を比べてみましょう。
「すごろく」では、サイコロを振って出た数だけ進み、順番にマスを進んでいきます。これが「線形」の例です。始点からゴールまで、一直線に進んでいきます。
一方、「自由研究」では、自分が何をするか、どの順番で進めるかは自分で決められますよね。図書館で本を読んだり、インターネットで情報を探したり、実験をしたり…その一つ一つが「状態」で、それを自分の思うままに選んで変えていくのが「状態管理」です。これがGUIの状態管理のイメージです。
つまり、GUIにおける状態管理は「すごろく」ではなく、「自由研究」のような形で行われるということ
---take2
アイスクリームショップで、たくさんのフレーバーの中から選ぶとき、まずバニラを選ぶかチョコレートを選ぶか決めるでしょう。次に、それにトッピングを加えるかどうか選びます。そして最後に、それをコーンにするかカップにするかを選びます。
このアイスクリームの選び方は、コンピューターのGUI(グラフィカルユーザーインターフェース)のようなものです。GUIでは、たくさんのボタンやメニューがあり、それらをクリックすることで操作を行います。例えば、文書を作成するためのソフトウェアでは、新しい文書を作成するボタンをクリックし、次に文字を打ち込み、最後に保存のボタンを押すなど、一つひとつの選択が次の選択に影響を与えます。
しかし、GUIでは「線形ではない」ということは、アイスクリームを選ぶのと同じで、全ての選択が決まった順序で行われるわけではないということです。例えば、チョコレートを選んだ後に、バニラに変更したり、トッピングを加えた後に、それを取り消すこともできます。これは、ユーザーが操作を視覚的に行うため、思いつきや必要に応じていつでも操作を変更できるからです。
それと同じように、GUIでは、保存をした後に文書をさらに編集したり、ボタンの選択を変更したりすることもできます。これは、GUIの「状態管理」が線形ではないということを意味します。つまり、操作は決まった順序で行われるわけではなく、ユーザーのニーズに合わせて自由に変更できるということです。