著作一覧 |
NetBenas5のチュートリアルの最初の部分(データベースエクスプローラ自体の利用と、ウィザードの用意の部分まで)。
この後、実際のConnectionManagerやらを利用してJDBCのConnectionを使っていろいろすることになるわけなので、まだ前置きみたいなもんだけど。というか、プログラム作ってないし。
3:05:最初にウィザードを作成するときにcustomを選択していたために、ファイル作成と連動していなかったことがわかったので修正。とりあえず、接続先選択のページまで。
上のに関連して、VisualとWizardの関連がビミョーだ。
Nextして良いかの判断はWizardが行う。これは良い。IteratorはWizardだけを意識するから。しかし入力を実際に受けるコントロール(Jxxx)はVisualが持つ。これも当然と言えば当然。
なんか、モデルとビューが逆転してるみたいなんで、そこでWizardはモデルではなくコントローラと考えてみる(モデルはコントロールが持つし)。
で、操作が双方向になるのだが、ここがあまり気に入らない。
ビュー→コントローラで、入力受けたからNext表示してOK。コントローラ→ビューで入力教えて。
これ、モデルとビューが逆転した感じに見える。モデル→ビュー(おれ変わったからカキコよろ)、ビュー→モデル(データくれくれ)。
しかも、ウィザードが作成するソースがまたわけわかめ。
Wizard→Visualでデータ寄越せとやるなら、Componentの参照ではなく最初からVisualの型でフィールド作るべきだし(キャストはいやだね)、コントロールがprivateなのも妙な感じだ(これはマーティーのデフォルトだからで、これをパッケージプライベートにしてやれば良いのかも)。
逆にVisual→Wizardでイベントを出したくても逆参照が無い。
……
そうか、コントロールをprivateにするのと、Componet参照の2つを取り払って、Wizard→Visualの単方向にすればきれいかも知れない。どうせ内包するし、イテレータからは実際のVisualはWizardによって肩代わりされるのだから、WizardはViewのフロントコントローラでVisualとは密結合と考える。Component参照とするところが奇妙なのだろう。
#と、NetBeansのサンプルを見ずにいろいろ考えてみたり。
ジェズイットを見習え |