すべてのあなたの実用的なオブジェクト指向の人のための簡単な質問。 OO標準に同意するために、「プロセッサ」や「xxxxHandler」のようなクラスを避けるために何度も読んでいます。システムコードの理解のための良い尺度だと思います。OOスタイル - 簡単な質問
いくつかのファイル構造をスキャンするソフトウェアがあるとしましょう。具体的には特定のCSVファイルを考えてみましょう。 CsvParserという独立したモジュールがあるとしましょう。
class CsvParser {
public string GetToken(int position) { .. }
public bool ReadLine() { .. }
}
class MyCsvFile {
public string FullPath { get; }
public void Scan() {
CsvParser csvp(FullPath);
while (csvp.ReadLine())
{
/* Parse the file that this class represents */
}
}
}
これは、 "FileScanner"クラス(プロセッサタイプのクラス)を節約します。収集するものには、ディレクトリからのファイルの束があり、それぞれをスキャンします。
class MyFileScan {
public string[] Files { get; set; }
public void GetFiles() { this.Files = Directory.GetFiles(..); }
public void ScanFiles() {
foreach (string thisFilePath in Files)
{
CsvParser csvp(thisFilePath);
/* ... */
}
}
}
OOのアプローチでは、MyCsvFileクラスを指定し、次にそのオブジェクトに対する操作を表すメソッドを指定します。
どのような考えですか?あなたはプログラマーが何を考えますか?
このコミュニティのウィキはありませんか? (私はこの質問をした人の一人になったとは信じられません) – Imagist