2005年10月27日
設計に詰まる...
作成中の簡易オーディオプレーヤ、とりあえず、プレイリスト部に読込んだファイルのパスを表示するところ「まで」は出来た。プレイリストで選択した曲を再生する部分も、実装しようと思えば、そう悩まずに実装できると思う。
だが、問題はその実装方法。どういうクラス分けをして、それらクラスにどのような機能を持たせ、どのように呼び出すか、といったソフトの設計に関することで悩んでいる。
そもそも、プレイリストのデータを、Controllerクラス(UIからの情報を受け、各クラスにメッセージを送る、アプリ全体を統制するクラス)で直接いじくるという設計はいいのだろうか。構想としては、プレイリストに関することはPlayListクラスに全て任せ、Controllerクラスはあくまでも、UIからの要求をPlayListクラスへ送るという業務に専念したい。
だが、プレイリストのUI部分であるNSTableViewは、表示するデータ源をInterface Builderで指定してやらなければならない(他の方法もあるのかもしれないが、自分は知らない)。指定する為には、PlayListクラスをインスタンス化しなければならないのだが、そうすると今度は、インスタンス化されたPlayListクラスを、Controllerクラスから知る術が無い。結果として、ControllerクラスとPlayListクラスは、互いに完全に分断独立されたクラスになってしまう。
そんな訳で、ControllerからNSTableViewを直接操作しているが、プレイリストをクラス化しようがしまいが、一度、ソフトの設計を整理する必要がありそうだ。
とは言え、こうした設計に関する知識は皆無だったりする。何か、文献を当たるしかあるまい…。ソフト完成までの道は、まだまだ長い………。