クラス間のデータのやりとりの方法 – プログラミング – Home

クラス間のデータのやりとりの方法
 
通知
すべてクリア

[解決済] クラス間のデータのやりとりの方法


那由他
 那由他
(@那由他)
ゲスト
結合: 16年前
投稿: 7
Topic starter  

まじめにクラスの勉強とかした事がないので、どういう風にすれば良いか悩んでいま
す。

MainDialogClass
 +ViewDialog1
 +ViewDialog2
 +DataClass

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

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

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


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> ...
> という構成があり

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


返信引用
那由他
 那由他
(@那由他)
ゲスト
結合: 16年前
投稿: 7
Topic starter  

えと、インスタンスです。

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


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

DataClassがMain-View間の情報のやりとりのために
用意されたクラスであるなら、素直にそれに従います。

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

なぜ?


返信引用
那由他
 那由他
(@那由他)
ゲスト
結合: 16年前
投稿: 7
Topic starter  

DataClassはデータアクセスクラスで、DBにアクセスして情報を抱えているクラスです。
データだけを持ってるクラスではないので、他の人はどうやって情報やりとりするんだ

って思っての質問でした。

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

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


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> データのやりとり用に別クラスを作って、データを受け渡すのがスタンダードなんで
しょうか。

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

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


返信引用
那由他
 那由他
(@那由他)
ゲスト
結合: 16年前
投稿: 7
Topic starter  

自由にしていい、って事ですかねw

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

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

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


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

解決になっているのでもう見て無いかもですが、

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

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


返信引用
那由他
 那由他
(@那由他)
ゲスト
結合: 16年前
投稿: 7
Topic starter  

設計の勉強をしようと思い、とりあえず今やってるプログラムをUMLを使って展開してみ
ようと、UMLチュートリアルを見ながらトライしてみたのですが…。
挫折中です;;

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました