Go的工厂模式

简介: 工厂模式简单介绍与实现。

工厂模式是一种创建型设计模式,它提供了一个接口来创建对象,但允许子类决定实例化哪个类。它封装了对象的创建逻辑,提供了灵活性和松耦合性,使客户端代码与创建的对象之间解耦。

在Go语言中,我们可以使用接口、结构体和工厂函数的组合来实现工厂模式。以下是一个简单的示例,演示了Go语言中的工厂模式的用法:

package main

import "fmt"

// 接口定义
type Shape interface {
   
    Draw()
}

// 结构体实现
type Rectangle struct{
   }

func (r Rectangle) Draw() {
   
    fmt.Println("Drawing a rectangle")
}

type Circle struct{
   }

func (c Circle) Draw() {
   
    fmt.Println("Drawing a circle")
}

// 工厂函数
func CreateShape(shapeType string) Shape {
   
    switch shapeType {
   
    case "rectangle":
        return Rectangle{
   }
    case "circle":
        return Circle{
   }
    default:
        return nil
    }
}

func main() {
   
    shape1 := CreateShape("rectangle")
    shape1.Draw()

    shape2 := CreateShape("circle")
    shape2.Draw()
}

在上面的示例中,我们定义了一个 Shape 接口,并实现了 RectangleCircle 两个结构体来满足该接口的要求。然后,我们使用 CreateShape 工厂函数根据传入的参数来创建不同的形状对象。

通过调用 CreateShape 函数,我们可以根据需要创建不同类型的形状对象,而无需直接与具体的对象类型耦合。这提供了更大的灵活性,使得我们可以轻松地扩展和修改对象的创建逻辑。

目录
相关文章
|
7月前
|
关系型数据库 MySQL Go
工厂模式+自动注册管理Go多包结构体
工厂模式+自动注册管理Go多包结构体
168 1
|
设计模式 Go 数据库连接
Go实现设计模式之工厂模式
工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的接口,但具体的对象创建逻辑由工厂类负责。工厂模式可以将对象的创建与使用代码解耦,提高代码的灵活性和可维护性。
402 1
|
设计模式 Go
Go 语言实现创建型设计模式 - 工厂模式
Go 语言实现创建型设计模式 - 工厂模式
57 1
|
设计模式 XML JSON
Go设计模式(7)-工厂模式
工厂模式简单来说就是用来创建对象。工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂,一般认为简单工厂是工厂方法的特例,我会通过这篇文章对简单工厂和工厂方法进行讲述。
|
12天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
24 7
|
11天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
12天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
88 71
|
11天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
96 67
|
14天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
86 62
|
12天前
|
存储 Go
go语言中映射
go语言中映射
29 11