Corak kilang ialah corak reka bentuk yang digunakan untuk mencipta objek tanpa menyatakan kelas tertentu Kelebihannya termasuk menyahganding proses penciptaan, skalabiliti dan fleksibiliti Ia sesuai untuk proses penciptaan yang kompleks, keperluan untuk memilih produk secara dinamik, atau keperluan untuk menyediakan ciptaan keupayaan jenis Produk baharu.
Corak kilang ialah corak reka bentuk untuk mencipta objek tanpa menentukan kelas tertentu. Ia membolehkan aplikasi mendapatkan objek yang diperlukan tanpa mengetahui proses penciptaan.
type Product interface { DoSomething() } type ProductA struct {} func (p *ProductA) DoSomething() { fmt.Println("ProductA doing something...") } type ProductB struct {} func (p *ProductB) DoSomething() { fmt.Println("ProductB doing something...") } type Factory interface { CreateProduct() Product } type FactoryA struct {} func (f *FactoryA) CreateProduct() Product { return &ProductA{} } type FactoryB struct {} func (f *FactoryB) CreateProduct() Product { return &ProductB{} } func main() { factoryA := &FactoryA{} productA := factoryA.CreateProduct() productA.DoSomething() // Output: ProductA doing something... factoryB := &FactoryB{} productB := factoryB.CreateProduct() productB.DoSomething() // Output: ProductB doing something... }
Corak kilang sering digunakan untuk memisahkan proses penciptaan dan penggunaan objek. Sebagai contoh, apabila menggunakan rangka kerja suntikan kebergantungan, ia membolehkan anda mencipta objek tanpa bergantung secara langsung pada kelas konkrit.
Situasi apabila mempertimbangkan untuk menggunakan corak kilang termasuk:
Atas ialah kandungan terperinci Amalan dan perbincangan corak kilang di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!