モデル設計
メンテナンスや保守に時間を掛けたくないし、1回作ったら様々な環境で使えるようにしたいし、
動作環境が多ければそれだけ拡張性も上がるし、と言うことでJavaで開発します。
C++やらC#やVB.NETなどもありますが、Javaは速度は多少落ちますが拡張性が高そうなのでそうします。
基本的なレイアウト
特別なレイアウトは考えていません。以下のようにメインビューの周りにサブビューを配置するイメージです。
このビューを組み合わせて自分に最適な設定を定義します。
モデル設計のレイアウト
モデル設計ではモデルの取込みや編集や表示をしたいのでインポートをするためのウィザードや
モデルを表示して編集するビューが必要ですね。モデルビューではX, Y, Z軸の向きを表す
矢印的なものも欲しいです。あとはグリッド線の表示/非表示を切り替えたいですね。
モデル設計を構成するコンポーネント
モデル設計を制作する上で内部的な構造を決めていきたいと思います。他の機能の画面レイアウトすら
決まっていませんが、内部的な構造をきめちゃいたいと思います。
まず考えたいのはこのモデル設計を構成する部品ですね。あとあと、仕様は増えて行くので拡張できる
構成にしたいですね。以下に使用するコンポーネントを説明します。
-
メニューバー
- ファイル(F)、編集(E)のようなメニューを選択するやつです。基本的なものを含めたメニューが
あれば良いいと思います。あとは他の画面でメニューを拡張し簡単に増やせればなお良いですね。
-
ボタン
- 押したら何かしらの反応をするボタンです。これは特に特別な設計をしなくてもよさそうですね。
-
テーブル
- テーブルです。・・・今は何も思い浮かびません。簡単に扱えるように改造する必要は
ありそうですが、今は何も思い浮かびません。
-
フレーム
- ウィンドウのことです。フレームは全てのウィンドウで使用されるクラスなので
ウィンドウやコンポーネントのイベントはスーパークラスに設定したいですね。
-
GLキャンバス
- OpenGLを表示するキャンバスです。マウスを使った平行移動や回転は絶対にやりそうな
処理ですね。これはスーパークラスにまとめましょう。
モデル設計の内部構造
さて、普通なら次の段階ではソースコードに落とし込む前に内部構造を設計するのですが、
面倒なので一気にソースコードに落とし込んじゃいます。かと言って、まったく何も決めずに
ソースコードに落とし込むのはリスクが高いので、前提となる考えだけを明確にします。
前提は「機能を持つ部品と非機能な部品を上位パッケージで分離する」としましょう。
要はパッケージの分け方の話です。非機能な部品は再利用を前提とした作りにし、
機能を実装する部品は再利用を前提とした作りにしなくても良いということです。
んで、作って見たのが以下のような構成です。
・・・クラス図をエクセルで描こうと思っていたのですが、時間かかって勿体ないので、
今からツールを作ろうと思います。暫くお待ちください。
とりあえず、今回は以上です。