ホームページ  >  記事  >  バックエンド開発  >  関数がインターフェイスを実装する場合のスキーマ名は何ですか?

関数がインターフェイスを実装する場合のスキーマ名は何ですか?

王林
王林転載
2024-02-09 20:00:201221ブラウズ

関数がインターフェイスを実装する場合のスキーマ名は何ですか?

php エディターの Youzi がよくある質問に答えます: 「関数がインターフェイスを実装するときのパターン名は何ですか?」 PHP では、関数がインターフェイスを実装するとき すべてのメソッド、これこのモードは「インターフェース実装モード」または「インターフェースアダプターモード」と呼ばれます。インターフェイス実装パターンは、プログラマがインターフェイスを実装することによって一連のメソッドを定義できるようにする共通の設計パターンであり、それによってコードの再利用とモジュール化を実現します。このモデルを通じて、インターフェイスのポリモーフィズムを実現し、コードの柔軟性と保守性を向上させることができます。オブジェクト指向プログラミングでも関数型プログラミングでも、インターフェイスの実装パターンは重要な技術的手段です。

質問内容

goでは、http.handlerインターフェースや具象型http.handlerfuncなどのインターフェースを実装する関数を作成できます。さまざまな従業員のボーナスを計算するために、このパターンの別の簡単な例を作成しました。

リーリー

したがって、上記では、同じことを行うために構造体を使用する代わりに、インターフェイス bonuscalculator を実装する単純な bonusfuncs を用意しました。

このパターンには名前がありますか?色々な場所で見かけましたが名前は知りませんでした。

解決策

このパターンには名前がありますか?色々な場所で見かけましたが名前は知りませんでした。

はい、このパターンは Adapter と呼ばれます。これは、特定の「インターフェイス」(この場合はクロージャ) を別の種類のインターフェイス (## を満たす) として使用できるようにするためです。 #bonuscalculator タイプ)。

あなたの例には、インターフェース

bonuscalculator: があります。 リーリー

ただし、型

func(salary float64) float64 のクロージャがあり、bonusfunc を満たす型、つまりメソッドを持つ型が必要なときに、それらを渡すことができるようにしたいとします。 Calculate(salary float64) float64 (クロージャにはそのような名前のメソッドがないため、bonuscalculator を満たしません)。

あなたが望むのは、

func(salary float64) float64bonuscalculator に適応させることです。そこで、アダプターである新しいタイプ bonusfunc を定義します。これは、適応させたいクロージャの型から派生し、基礎となるクロージャ : を呼び出すメソッド calculate(salary float64) float64 を定義することで bonuscalculator を満たすことができます。 リーリー

bonusfuncadapter です。bonuscalculator インターフェイスを満たすために func(salary float64) float64 を適応させるためだけに存在します。 。これで、func(salary float64) float64bonusfunc に代入すると、bonuscalculator を満たす値が得られます。

以上が関数がインターフェイスを実装する場合のスキーマ名は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。