2011-08-03 9 views
1

私はしばしば、2つのクラスの構造を知る必要のあるメソッドを持っています。たとえば、クラスExcelDocに書き込むことができるいくつかのクラステーブル。2つのクラスを扱うメソッドの場所?

文書をExcelに書き込む方法では、両方の構造を知る必要があります。どちらも変更することができ、多分いくつかの基本的なインターフェイスを提供する複数の実装Table1、Table2、Excel1、Excel2を持つことができます。私は

ExcelDoc.write_data(table) 

または

Table.write_to(excel) 

を実装することができいずれか、または私も中間クラス

TableToExcel.write(excel, table) 

を作ることができたり、私はクラスから派生する可能性が今

...

今後のさらなる開発や機能の最適設計をしたい場合は、最高のデザインは何と思いますか?

答えて

1

中間形式で記述するデータを表すことができる場合は、両方のクラス、つまりExcelと表で同じ表現を使用できます。すなわちExcel.write_data(data_in_intermediate_form)およびTable.write_data(data_in_intermediate_form)である。

または、テーブルとExcelにはデータの読み取り/書き込み用の既知のインターフェイスがあり、テーブルとExcelクラスで相互にインターフェイスを実装できます。テーブルからExcelにデータを取得するには、ExcelObject.import(dataFromTable)を実行します。意味がありますか? (模擬目標を達成するための輸入例がたくさんありますよね)

シャーシ

+0

ありがとうございます!私は自分自身を試してクラスデザインを学んだ。ベストプラクティスを学ぶことができる情報源はありますか? – Gerenuk

+0

「デザインパターン」とリファクタリングを行うことができます。 http://sourcemaking.com/ – Shash316