2017-02-25 5 views
0

以前に質問された質問のように感じますが、私はGoogle検索で正しく言葉を語る方法が正確ではありません。 MainWindowオブジェクトがあり、そのオブジェクトにPanelA、PanelB、PanelC、およびPanelDという複数のオブジェクトを定義するとします。このオブジェクトを互いに結び付けるきれいで効率的な方法

PanelA(PanelB* b, PanelC* c, PanelD* d)

のように見えるのコンストラクタを持たずにお互いにこれらのオブジェクトを接続するための良い方法は何でしょう、あなたはちょうどそう

PanelA(MainWindow* mw) 
{ 
    b=mw->b; c=mw->c; d=mw->d; 
} 

等をメインクラスを介してそれらをすべて渡すことをお勧め私のクラスを構成する良い方法があります。一般的に知られているこの問題は何か、私はこのようなものを自分でGoogleにすることができます。

+0

どのように接続する必要がありますか?目的は何ですか?彼らはちょうどデータを交換し、お互いの機能を呼びますか?これらすべての要素がデザインに影響する可能性があります。 – UnholySheep

+1

このような関係と接続を実現する方法は、この素朴な質問では想定するよりも複雑です。 1つの良い例はQt信号/スロットモデルで、そのように設計する必要があります。 –

+0

あなたは所有権モデルについて話していますか? – Charles

答えて

1

この問題は一般的に知られているので、私はこのようなものを自分自身でGoogleに送信できます。

設計上の欠陥は、強い結合の種類とハードコードされた関係の使用として知られています。

このようなコードをリファクタリングする一般的なアプローチは、インターフェイスを導入し、機能によって実際の依存関係を解決する設計パターンです。

関連する問題