クラス間のデータのやりとりの方法

[戻る]
那由他 2008/09/03(水) 13:36:32
まじめにクラスの勉強とかした事がないので、どういう風にすれば良いか悩んでいま
す。

MainDialogClass
 +ViewDialog1
 +ViewDialog2
 +DataClass

という構成があり、ViewDialogはモーダレスダイアログです。

ViewDialog1,2それぞれからDataClassのデータを参照・変更したいのですが、
DataClassのポインタをViewDialogに渡すのも格好悪いかなと思いますし、
メインにメッセージで通知するのも、データ型や数がばらばらなので面倒臭そうです。

他に手段とか、クラス配置とか、かっこいい(一般的な?)やりかたを教えて下さい。

επιστημη [HomePage] 2008/09/03(水) 13:46:52
> ...
> という構成があり

意味わからん。
クラス階層? インスタンスの所有関係? 
説明せんと通じませんぜ。

那由他 2008/09/03(水) 15:28:32
えと、インスタンスです。

MainDialogClassにViewDialog2つとDataClassのクラス変数を用意してる感じです。

επιστημη [HomePage] 2008/09/03(水) 16:07:06
DataClassがMain-View間の情報のやりとりのために
用意されたクラスであるなら、素直にそれに従います。

> DataClassのポインタをViewDialogに渡すのも格好悪いかなと思いますし

なぜ?

那由他 2008/09/03(水) 16:54:52
DataClassはデータアクセスクラスで、DBにアクセスして情報を抱えているクラスです。
データだけを持ってるクラスではないので、他の人はどうやって情報やりとりするんだ
ろ
って思っての質問でした。

元のクラス分割が間違ってるのかもしれないんですけど…;;


データのやりとり用に別クラスを作って、データを受け渡すのがスタンダードなんで
しょうか。
今回は、各ViewDialogが勝手なタイミングで情報を取得しようとするのと、更新がある
ので…。
ポインタ渡しとくのが簡単なんですけどね;;

επιστημη [HomePage] 2008/09/03(水) 17:05:56
> データのやりとり用に別クラスを作って、データを受け渡すのがスタンダードなんで
しょうか。

なにをもってスタンダートとするのかわからんけども、
データのやりとり用の別クラスを作ったところでDB用に用意したDataClassと
ほとんど同じになる、あるいは一方が他方を包含するのであればそうするし、
まったく異なったものになるならそれはそれでよし。
# そんときゃ両者相互の変換/転送を考えにゃならんですが。

いずれにせよ、あなたの"意図"がクラスに(素直に)反映されてりゃいぃんじゃないかし
ら。

那由他 2008/09/04(木) 11:00:37
[[解決]]
自由にしていい、って事ですかねw

Windowsのプログラムをやってるのが社内で一人だけなので「こんな組み方でいいのか
なぁ?」って結構不安になったりするもので、他の人ならどうするのか聞いてみたかっ
たってのが実情です。

ポインタで渡す事にします。

お付き合い頂きありがとうございました。

PATIO 2008/09/04(木) 13:05:25
解決になっているのでもう見て無いかもですが、

C++の文法に関しては理解できているなら
オブジェクト指向設計とかデザインパターンとかの勉強を
したら良いのではと思います。

多分、言語をある程度知っていた方が理解しやすいのではとも
思いますし。

那由他 2008/09/08(月) 11:44:39
設計の勉強をしようと思い、とりあえず今やってるプログラムをUMLを使って展開してみ
ようと、UMLチュートリアルを見ながらトライしてみたのですが…。
挫折中です;;

やはり基本概念をしっかり勉強しないとダメですね・・・。

古いスレッドには追加発言できません。