简单工厂设计模式Golang

简单工厂设计模式(Simple Factory Pattern)

简单工厂设计模式(Simple Factory Patten): 根据参数的不同返回不同类的实例. 简单工厂模式专门定义一个类来负责创建其他的实例,被创建的实例
通常含有相同的父类.

优点 和 缺点

– 优点

  1. 只需要传递参数就可以创建产品的类.
  2. 创建的对象跟业务代码进行分离.
  3. 可以通过引入配置文件, 可以增加系统的灵活性.

– 缺点

  1. 工厂类中含有大量的逻辑代码. 如果出现问题会影响系统
  2. 会增加类的个数
  3. 系统扩展困难, 需要修改工厂逻辑代码
简单工厂 角色
  1. Factory(工厂类)用来生产产品, 是整个简单工厂模式的核心. 通过工厂类传入想要生产产品的参数, 然后生产产品.
  2. Product(抽象产品类)用来定义具体产品所应实现的接口
  3. ConcreteProduct(具体产品类), 实现抽象产品的接口, 不同的具体产品, 对于同一种方法可能具有不同的实现方式,经由工厂类进行实例化。
UML

代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
type Car interface {
Drive()
}
type BMW struct{}

func (b *BMW) Drive() {
fmt.Println("Drive BMW")
}

type Audi struct{}

func (a *Audi) Drive() {
fmt.Println("Drive Auti")
}
func Factory(name string) Car {
switch strings.ToLower(name) {
case "audi":
return &Audi{}
case "bmw":
return &BMW{}
default:
fmt.Printf("Not Support %s\n", name)
return nil
}
}

Powered by Hexo and Hexo-theme-hiker

Copyright © 2018 - 2021 Noonde All Rights Reserved.

UV : | PV :