ホームページ  >  記事  >  バックエンド開発  >  golangのアダプターパターン

golangのアダプターパターン

王林
王林転載
2024-02-10 08:40:10910ブラウズ

golang 中的适配器模式

golang のアダプター パターンは、互換性のないインターフェイスを互換性のあるインターフェイスに変換するのに役立つ一般的に使用される設計パターンです。アダプターを通じて、異なるシステムおよび異なるクラス間の相互運用性を実現し、コードの柔軟性と再利用性を向上させることができます。この記事では、PHP エディターの Banana がアダプター パターンの概念、アプリケーション シナリオ、実装方法を詳しく紹介し、読者がこの設計パターンをよりよく理解し、適用できるようにします。初心者でも経験豊富な開発者でも、この記事から実践的な知識とスキルを獲得し、Golang アダプター パターンについての理解を深められます。この楽しくて実用的なデザイン パターンを一緒に探ってみましょう。

質問内容

golangでアダプターパターンを作成しようとしているのですが、何が間違ったのかわかりません。 client.go でエラー

が表示される c.broker.placeorder 未定義 (タイプexchange.exchange にはフィールドまたはメソッド placeorder がありません)

main.go

リーリー

コンシューマー.ゴー

リーリー

client.go

リーリー

broker.go

リーリー

exchange.go

リーリー

paytm.go

package main

import (
    "context"
    "oms/consumer"
)

func main() {
    ctx := context.background()
    consumer.consumer(ctx)
}

回避策

broker パッケージからエクスポートされていないメソッドを呼び出そうとしています。 paytm パッケージの外部からこのメソッドを呼び出したい場合は、メソッドだけでなくインターフェイスでも名前を PlaceOrder に変更する必要があります。

エクスポート/非エクスポートのフィールドとメソッドの詳細については、こちらをご覧ください: https://golangbyexample.com/exported-unexported-fields-struct-go/

以上がgolangのアダプターパターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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