人の場合、親と子は別々の存在です。
親子という繋がりはあるものの、基本的に子は親を無視して自由に動けます。
いっぽう、プログラムの親子関係はちょっと不思議です。
プログラムの子は、親にくっついています。
親が動くと子も一緒に動いたり、親が消えると子も一緒に消えたりします。
また親子は自由に付け外しでき、別の親に入れ替えることもできます。
そのため、親は子が突然いなくなったり、入れ替わったりすることを考えた処理にする必要があります。
子の全てを知ろうとするのではなく、居場所だけを連絡しあうなど、ほどほどの関係にしておくのがよいです。
目次
もっと深く学びたい方へ
親子関係を利用している仕組みはたくさんあります。
例えばパソコンやスマホのアプリを使っていると出てくるウィンドウ。
ウィンドウの中にはボタンや文字など色々な部品が入っていますが、これらはウィンドウが動くと一緒に動きますし、ウィンドウが閉じられたら一緒に消えます。
逆に親子関係がちゃんと設定されていなくて、ウィンドウが消えたのに一部の文字だけが取り残されてしまうというようなバグが起きることもあります。
親子の連絡方法についても様々で、以下のようなパターンがあります。
- 親が子を持っていて、子を直接操作する
- 子が親に「動いたよ」と知らせる
- 親子の間にメッセージを入れておく箱を用意し、お互いが定期的にメッセージを入れたり、確認したりする
親は子をできるだけ抽象的なものとして扱うと、プログラムをスッキリ書けることが多いです。
例えば先のウィンドウの例ですと、親は子を「ボタン」「テキストボックス」と具体的に扱うのではなく、「画面に表示できる何か」として扱うことで、「全ての子をまとめて非表示にする」というようなこともできます。
コメント