Rumah > Artikel > pembangunan bahagian belakang > Corak penyesuai dalam 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!
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) }
consumer.go
package consumer import ( "context" "fmt" "oms/broker" ) func consumer(ctx context.context) { broker.execute() }
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) }
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) }
exchange.go
package exchange type exchange interface { placeorder(id string, quantity, price int) }
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 }
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!