简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在这种模式中,一个工厂类负责创建其他类的实例,并且封装实例的创建逻辑。这种模式让类的实例化推迟到子类进行。
在没有工厂模式的情况下,如果需要创建多种类型的对象,可能会导致一个类中包含大量条件判断语句,这不仅增加了代码的复杂性,也违反了单一职责原则和开闭原则。
下面是一个使用Go语言实现的简单工厂模式示例,我们将创建一个汽车工厂,用于生产不同类型的汽车。
package main
import "fmt"
// 抽象产品:汽车接口
type Car interface {
Start() string
}
// 具体产品:宝马汽车
type BMW struct{}
func (b BMW) Start() string {
return "BMW started"
}
// 具体产品:奔驰汽车
type Mercedes struct{}
func (m Mercedes) Start() string {
return "Mercedes started"
}
// 工厂:汽车工厂
type CarFactory struct{}
// 创建宝马汽车
func (c CarFactory) CreateBMW() Car {
return BMW{}
}
// 创建奔驰汽车
func (c CarFactory) CreateMercedes() Car {
return Mercedes{}
}
func main() {
// 创建汽车工厂
factory := CarFactory{}
// 通过工厂创建宝马汽车
bmw := factory.CreateBMW()
fmt.Println(bmw.Start())
// 通过工厂创建奔驰汽车
mercedes := factory.CreateMercedes()
fmt.Println(mercedes.Start())
}
在这个示例中,我们定义了一个Car接口,它有一个Start方法。然后我们创建了两个具体产品BMW和Mercedes,它们都实现了Car接口。CarFactory是工厂类,它有两个方法CreateBMW和CreateMercedes,分别用于创建宝马和奔驰汽车的实例。在main函数中,我们通过工厂创建了不同类型的汽车,并调用它们的Start方法。简单工厂模式来分离对象的创建和使用,使得代码更加模块化和易于维护。
如果您喜欢我的文章,请点击下面按钮随意打赏,您的支持是我最大的动力。
最新评论