みなさん,こんにちは
Tacchangです。
今,昔のソースコードを眺めていて感じた疑問があるのですが,納得できる回
答が思い浮かばない(問題解決したことがない/できない)ので,もし,同様の
問題解決をしたことがある方は,アドバイスお願いします.
【私がぶつかっている壁】
手元にBorland C++ Builderで作ったプログラムがあります.そのプログ
ラムはGUIを持っており,GUIはコントロールをペタペタ貼り付けるタイプの
開発で作ったものなのでmain()にイベントハンドラが沢山あります.
私は,メソッドがだらだらとたくさんあるクラスはあまり好きではありま
せん.うまく責務分担できないものかと悩んでいます.
【私の問題解決過程に浮かび上がった疑問】
責務分担する必要がある,という前提で・・・
1.巨大なGUIクラスの分割はどうすればよいでしょうか?
概念モデルから入るドメイン層のオブジェクトは,責務分担がとてもわか
りやすいのですが,プレゼンテーション層(GUI)層は分割基準がよくわかり
ません.OOP達人の場合はどういう風に責務分担されているのでしょうか?
RADツールを使うことを考えると,main()が持つ責務(メソッド)をGUIク
ラスの責務へ移せばいいかな?(コンポーネント化)と想像していますが,
これは問題解決の方向としていかがでしょう?
2.どういう風にダイアグラムを書くの?
プレゼンテーション層とアプリケーション層/ドメイン層はどうやってモ
デリング上区別されるのだろう?ダイアグラムが別?パッケージが別?ステ
レオタイプ?はたまたこれ以外?
3.GUI層のモデリングってどうやるの?
そもそもプレゼンテーション(GUI)層のモデリングって見たことがあり
ません.OOA達人はどうやってモデリングされているんでしょうか?
MainForm(ベースとなるウィンドウ)にコントロール(コンポーネント)
を集約(◇)でぶら下げるだけならば,すでに画面仕様書が存在するのでしょ
うからUMLで記述したモデルは要らない気がします.
4.GUIのリファクタリングってパターン化されているのかな?
GUIのリファクタリング・パターンがあれば,その文献やURLを教えていた
だけないでしょうか.
以上
--
Tacchang