golang设计模式之工厂方法模式

前端之家收集整理的这篇文章主要介绍了golang设计模式之工厂方法模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. 概述

简单工厂模式是通过传递不同的参数生成不同的实例,缺点就是扩展不同的类别时需要修改代码

工厂方法模式为每一个product提供一个工程类,通过不同工厂创建不同实例。

类图:

相关源代码demo在Github上,可供参考!

2. 实现过程

    1. 工厂方法定义一个创建struct的接口,让子struct去实现。
type AnimalFactory interface { CreateAnimal() Action }
    1. BirdFactory创建一个Bird的实例
type BirdFactory struct {
}

func (this *BirdFactory) CreateAnimal() Action {
        return &Bird{}
}
bFactory := &BirdFactory{}
    bird := bFactory.CreateAnimal()
    bird.Move(100)

猜你在找的Go相关文章