1

私は SRP と SOLID を真に理解し、人々がそれを適用する理由を完全に理解しようと努めてきました。私はまだ SRP の「アート」をマスターしようとしています。これに取り掛かると、私が最もよく理解しているアドバイスは次のとおりです。 " (臭い、私は知っています) CreateComputerObject、FindComputerObject、および DeleteComputerObject を持っています。これは 3 つの別個のクラスに分割する必要があると思いますよね?

しかし、もっと重要なことは、SRP を宗教的に適用した場合、Visual Studio/C# プロジェクトで何十ものクラス .cs ファイルを取得できないのでしょうか? もしそうなら、そしてそれがそうあるべきだとしたら、どのようにプロジェクトを編成しますか?

どうもありがとう

4

1 に答える 1

2

そのため、CreateComputerObject、FindComputerObject、および DeleteComputerObject を持つ「ActiveDirectoryHelper」という名前のクラスを作成した可能性があります。これは 3 つの別々のクラスに分けるべきだと思いますよね?

SRP クラスによると、変更する理由は 1 つだけです。たとえば、ある時点で ComputerObject の作成ロジックを変更する必要があり、この変更が Find* および Delete* メソッドに影響しない場合は、CreateComputerObject を別のクラス (ComputerObjectFactory) に抽出する必要があります。

しかし、もっと重要なことは、SRP を宗教的に適用した場合、Visual Studio/C# プロジェクトで何十ものクラス .cs ファイルを取得できないのでしょうか?

これは、一部の人々が巨大な「神のクラス」を好み、組織化のためにコード領域を使用する MS の世界で聞く、驚くほど頻繁な質問/議論です。通常、多数のクラスは非常に良い兆候です。ほとんどの場合、コードが読みやすく、テストしやすく、整理されたものになります。結局、C# はオブジェクト指向言語なので、クラスをさらに作成することを恐れないでください。

もしそうなら、そしてそれがそうあるべきだとしたら、どのようにプロジェクトを編成しますか?

たとえば、名前空間とフォルダーを使用しますか?

于 2012-02-24T02:32:06.183 に答える