Corak penyesuai dalam golang

王林
Lepaskan: 2024-02-10 08:40:10
ke hadapan
878 orang telah melayarinya

golang 中的适配器模式

Corak penyesuai dalam golang ialah corak reka bentuk yang biasa digunakan, yang boleh membantu kami menukar antara muka yang tidak serasi kepada antara muka yang serasi. Melalui penyesuai, kami boleh mencapai kesalingoperasian antara sistem yang berbeza dan kelas yang berbeza, dan meningkatkan fleksibiliti dan kebolehgunaan semula kod. Editor PHP Banana akan memperkenalkan konsep, senario aplikasi dan kaedah pelaksanaan corak penyesuai secara terperinci dalam artikel ini untuk membantu pembaca lebih memahami dan menggunakan corak reka bentuk ini. Sama ada anda seorang pemula atau pembangun yang berpengalaman, anda boleh memperoleh pengetahuan dan kemahiran praktikal daripada artikel ini dan mendalami pemahaman anda tentang corak penyesuai Golang. Mari kita terokai corak reka bentuk yang menyeronokkan dan praktikal ini bersama-sama!

Kandungan soalan

Cuba buat corak penyesuai dalam golang, tidak pasti apa salah saya. Pelanggan saya.go menunjukkan ralat

c.broker.placeorder 未定义(类型 exchange.exchange 没有字段或方法 placeorder)

main.go

package main

import (
    "context"
    "oms/consumer"
)

func main() {
    ctx := context.background()
    consumer.consumer(ctx)
}
Salin selepas log masuk

consumer.go

package consumer

import (
    "context"
    "fmt"
    "oms/broker"
)

func consumer(ctx context.context) {
    broker.execute()
}
Salin selepas log masuk

client.go

package broker

import (
    "oms/broker/exchange"
)
type client struct {
    broker exchange.exchange
}

func (c *client) setbroker(broker exchange.exchange) {
    c.broker = broker
}

func (c *client) placeorder(id string, quantity, price int) {
// i am getting error here
    c.broker.placeorder(id, quantity, price)
}
Salin selepas log masuk

broker.go

package broker

// create a client and set its broker to paytm
import (
    "oms/broker/paytm"
)

func execute() {
    client := &client{}
    client.setbroker(paytm.paytm{ /* fields */ })
    client.placeorder("order1", 10, 100)
}
Salin selepas log masuk

exchange.go

package exchange

type exchange interface {
    placeorder(id string, quantity, price int)
}
Salin selepas log masuk

paytm.go

package paytm

import "oms/broker/exchange"

type Paytm struct {
    // fields
}

func (p Paytm) placeOrder(id string, quantity, price int) {
    // implementation for Paytm's placeOrder method
}
Salin selepas log masuk

Penyelesaian

Anda cuba memanggil kaedah yang tidak dieksport daripada pakej broker. Kalau nak mula dari paytm 包外部调用该方法,您应该在您的界面以及您的方法中将其重命名为 PlaceOrder .

Untuk maklumat lanjut tentang medan dan kaedah yang dieksport/tidak dieksport, lihat di sini: https://golangbyexample.com/exported-unexported-fields-struct-go/

Atas ialah kandungan terperinci Corak penyesuai dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!