1

いくつかのプライベートメソッドといくつかのパブリックメソッドを持つクラスがあるとします。

パブリック メソッドの 1 つで、オブジェクトのリストを作成します。これは、コードを単純にするために単純に抽象化された他の多くのメソッドで使用されます。

だから私は持っているかもしれません:

public class MyClass
{
    public void CreateList()
    {
        List<MyClass> MyList = new List<MyClass>();
        ... populate list

        DedupeList();
        ValidateList();
    }

    void DedupeList()
    {
        // do something using MyList
    }

    void ValidateList()
    {
        // do something using MyList
    }
}

この場合、最善のアプローチは何だろうと思っていました。

  1. CreateList() によって作成されたリストをクラス レベルの変数にします。
  2. リストにパラメーターを各サブメソッドに渡します。
4

2 に答える 2

0

それはリストの意味に依存します。いくつかの答えを見つけなければなりません。クラスの一部にする必要がありますか、それともメソッド呼び出しに沿って存在する一時変数にする必要がありますか? それはクラスの振る舞いの一部ですか?スレッド化はどうですか?DedupeListandValidateListメソッドがこのクラスの一部である必要があるかどうか、または別のクラスに値するかどうかを再考することもできますか?

Kent Beck の「Implementation Patterns」と Robert C. Martin の「Clean Code」を読むことをお勧めします。この種の小さいながらも頻繁に発生するケースに対して、非常に役立つヒントが多数あります。

于 2013-06-12T13:19:28.143 に答える