package main
import "fmt"
// 我先实现一个简单工厂模式,这种模式不属于GOF23种经典设计模式,它的缺点是违背“开闭原则”
// 运算接口
type Operater interface {
Operate()
}
// 加法运算
type AddOperate struct {
}
func (a *AddOperate) Operate(){
fmt.Println("加法运算")
}
// 减法运算
type SubOperate struct {
}
func (s *SubOperate) Operate(){
fmt.Println("减法运算")
}
// 定义一个简单工厂
type OperateFactory struct {
}
func (o *OperateFactory) CreateOperate(operatename string) Operater{
switch operatename {
case "+":
return &AddOperate{}
case "-":
return &SubOperate{}
// ... 未来增加运算符,这种情况就违背了开闭原则
default:
return nil
}
}
func main(){
pf := OperateFactory{}
pf.CreateOperate("+").Operate()
}
Go SimpleFactory 简单工厂模式
最新推荐文章于 2022-04-28 22:08:58 发布