Apakah corak reka bentuk yang biasa digunakan dalam rangka kerja golang?

WBOY
Lepaskan: 2024-06-03 12:54:57
asal
927 orang telah melayarinya

Corak reka bentuk biasa dalam rangka kerja Go termasuk: Corak Singleton: kelas yang memastikan hanya terdapat satu contoh kilang: Mencipta objek tanpa menyatakan jenis Pelawat tertentu: Menambah operasi baharu pada struktur objek sedia ada. Corak ini membantu meningkatkan kebolehskalaan, fleksibiliti dan kebolehselenggaraan aplikasi Go.

Apakah corak reka bentuk yang biasa digunakan dalam rangka kerja golang?

Corak reka bentuk yang biasa digunakan dalam rangka kerja Go

Corak reka bentuk ialah satu set penyelesaian boleh guna semula untuk masalah pembangunan perisian biasa. Mereka menyediakan cara piawai untuk menyelesaikan jenis struktur kod atau masalah tingkah laku tertentu.

Rangka kerja Go menyediakan satu siri corak reka bentuk terbina dalam untuk memudahkan dan memodulasi asas kod anda. Berikut ialah beberapa corak reka bentuk yang paling biasa digunakan:

Corak Singleton

Corak Singleton memastikan bahawa kelas hanya mempunyai satu tika. Biasanya digunakan untuk mengurus akses dikongsi kepada sumber, seperti sambungan pangkalan data atau objek konfigurasi.

type MySingleton struct {
    instance *singleton
}

func (s *MySingleton) GetInstance() *singleton {
    if s.instance == nil {
        s.instance = newSingleton()
    }
    return s.instance
}

func newSingleton() *singleton {
    return &singleton{}
}
Salin selepas log masuk

Corak Kilang

Corak kilang bertanggungjawab untuk mencipta objek tanpa menyatakan jenisnya yang tepat. Membenarkan menukar jenis objek yang dibuat dalam aplikasi tanpa mengubah suai kod klien.

type Factory interface {
    Create() Product
}

type ConcreteFactory1 struct {}

func (f *ConcreteFactory1) Create() Product {
    return &ConcreteProduct1{}
}

type ConcreteFactory2 struct {}

func (f *ConcreteFactory2) Create() Product {
    return &ConcreteProduct2{}
}

type Product interface { ... }

type ConcreteProduct1 struct {}
type ConcreteProduct2 struct {}
Salin selepas log masuk

Corak Pelawat

Corak pelawat membolehkan anda menambah operasi baharu pada struktur objek sedia ada tanpa mengubahnya sendiri. Ini membolehkan pelbagai operasi dilakukan tanpa mengubah objek.

type Visitor interface {
    Visit(subj Subject) string
}

type Subject interface {
    Accept(v Visitor) string
}

type ConcreteSubject1 struct {}

func (s *ConcreteSubject1) Accept(v Visitor) string {
    return v.Visit(s)
}

type ConcreteVisitor1 struct {}

func (v *ConcreteVisitor1) Visit(subj Subject) string {
    return "ConcreteVisitor1 visited ConcreteSubject1"
}
Salin selepas log masuk

Kes Praktikal:

Singleton Pattern:

// 数据库连接单例
var db *sql.DB

func GetDB() *sql.DB {
    if db == nil {
        db, _ = sql.Open("mysql", "user:password@tcp(host:port)/database")
    }
    return db
}
Salin selepas log masuk

Factory Pattern:

// 创建不同类型对象的工厂
func CreateRenderer(rendererType string) Renderer {
    switch rendererType {
    case "text":
        return &TextRenderer{}
    case "html":
        return &HTMLRenderer{}
    default:
        panic("Unknown renderer type")
    }
}
Salin selepas log masuk

Singleton Pattern ketersediaan Skala aplikasi Go anda , fleksibiliti dan kebolehselenggaraan.

Atas ialah kandungan terperinci Apakah corak reka bentuk yang biasa digunakan dalam rangka kerja golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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!