.NET

.NET デザインパターン

Singleton、Factory、Builder、Strategy、Decorator、Repository、Unit of Work、SOLID

24 面接問題·
Senior
1

Dependency Injection を使用したモダンな .NET において、Singleton パターンの主な問題は何ですか?

回答

従来の Singleton パターン(静的インスタンス)は、強い結合を生み出しテストを困難にするため、Dependency Injection と相性が悪くなります。モダンな .NET では、DI 経由でサービスの 'Singleton' ライフタイム(services.AddSingleton)を使用するほうが望ましく、単一インスタンスの保証を維持しつつ、インジェクション、モック化、テスト容易性を実現できます。静的な Singleton は DI コンテナを迂回し、隠れた依存関係を生み出します。

2

Factory Method パターンにおいて、.NET での Factory Method と Abstract Factory の違いは何ですか?

回答

Factory Method は単一の型のオブジェクト(例: CreateLogger)を生成する仮想メソッドを定義し、サブクラスがどの具象クラスをインスタンス化するかを決定できるようにします。Abstract Factory は関連するオブジェクト群(例: CreateButton や CreateTextBox を持つ IUIFactory)を生成するためのインターフェースを定義し、一貫した複数の製品をまとめて生成できるようにします。Factory Method はポリモーフィズムによる単一製品に焦点を当て、Abstract Factory は同一ファミリーの複数製品を扱います。

3

多くのオプションパラメーターを持つ複雑なオブジェクトを生成する際、.NET における Builder パターンの主な利点は何ですか?

回答

Builder パターンは、オブジェクトを段階的に構築するためのフルーエントなインターフェースを提供することで、テレスコーピングコンストラクター(異なるパラメーターの組み合わせを持つ複数のオーバーロード)を回避します。10 個以上のパラメーターを持つコンストラクターとは異なり、オプションパラメーターを持つ複雑なオブジェクトを読みやすく保守しやすい形で生成できます。モダンな C# では、単純なケースでは init プロパティや record が Builder を置き換えられますが、複雑な検証や多段階の構築には Builder が依然として有用です。

4

SOLID における Single Responsibility Principle(SRP)とは何であり、.NET でどのように適用しますか?

5

SOLID における Open/Closed 原則 (OCP) とは何ですか。また、.NET で interface を使ってどのように実装しますか。

+21 面接問題

次の面接に向けて.NETをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める