Go

Go Design Patterns

Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID

24 面接問題·
Senior
1

Go における Functional Options pattern の主な利点は何ですか?

回答

Functional Options pattern を使うと、コンストラクタをオーバーロードせずにオプションのパラメータを持つ設定可能な API を作成できます。異なるシグネチャを持つ複数のコンストラクタを避け、拡張しやすく読みやすい API を提供します。この pattern は first-class function を活用し、曖昧なデフォルト値を避けるため、Go において idiomatic です。

2

Go で Singleton pattern を実装する際に推奨されるアプローチは何ですか?

回答

Go では、Singleton pattern は thread-safe かつ lazy initialization を保証する sync.Once を使って実装するのが理想的です。このアプローチは、エラーの原因となりやすい手動の mutex や double-checked locking を避けられます。sync.Once は、複数の goroutine が並行している場合でも関数が一度だけ実行されることを保証します。

3

Go における interface の使用を促す SOLID 原則はどれですか?

回答

Dependency Inversion 原則は、高レベルのモジュールは低レベルのモジュールに依存すべきではなく、抽象(interface)に依存すべきであると述べています。Go では、これは interface を受け取り具象型を返すことを意味します。この原則はテスト(mocking)、疎結合、コードの保守性を容易にします。

4

Go で Factory pattern を idiomatic に実装するにはどうすればよいですか?

5

Adapter pattern の主な役割は何ですか?

+21 面接問題

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

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

無料で始める