0

カウボーイ コーダーは、SO ベテランの助けが必要です。

ファイルから読み取られる参考文献を使用する特定のアプリケーションがあります(実際には、異なるファイルである可能性がありますが、単一のファイルのみを想定しましょう)。

アプリケーションと同じ方法で参考文献を使用する必要がある新しいアプリケーションを作成するため、対応するクラスをコピーしました。

数日後、私は物事を実行しました %-| ...

問題は次のとおりでした。

Bibliography クラスには、参考文献を読み取り、書き込み、保持するためのコードがあります。参考文献を読み取るためのクラスが 1 つと、すべての値を保持するコンテナー クラスがあれば、私の作業はずっと簡単だったでしょう。参考文献を書いたり編集したりしたくありません。ただ読み込んで値を保持するだけです。

参考文献クラスをBibliographyReader、BibliographyWriter、およびBibliography(Container)クラスに分割するのが最善であるという私の考えは正しいですか?

PS: 誰か「カウボーイ コーダー」、「カウボーイ コーディング」などのタグを付けてもらえませんか? このタグが本当に恋しいです ;)

4

2 に答える 2

4

「コンテナ」クラスをリーダー/ライター/ゲッターなどから分離するアプローチが好きで、できればインターフェースによって定義されます。「戦略パターン」を検索すると、それに関する詳細情報が表示されます。

簡単な方法は、クラスがそのコンストラクターで をBibliography受け入れ、クラスがそのインターフェイスを実装するようにすることです。IBibliographyReaderクラスを作成するときBibliographyは、具体的なリーダー実装のインスタンスをそれに渡します。

于 2009-07-01T11:39:19.097 に答える
0

私は次のように責任を分割します:-

  • 参考文献: 参考文献に関連するデータを保持します。コンストラクターまたはセッターを介してこのデータを受け取ります
  • BibliographyFileStreamReader: 参考文献の読み取りを担当します (ファイル ストリームを指定)。Bibliography インスタンスを返します

BibliographyFileStreamWritter を追加することもできます。

于 2011-02-22T06:29:46.860 に答える