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

来源:互联网 发布:一致性哈希 java实现 编辑:程序博客网 时间:2024/06/04 19:16

1. 概述

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

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

类图:

func

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

2. 实现过程

    1. 工厂方法定义一个创建struct的接口,让子struct去实现。
type AnimalFactory interface {        CreateAnimal() Action}
    1. BirdFactory创建一个Bird的实例
type BirdFactory struct {}func (this *BirdFactory) CreateAnimal() Action {        return &Bird{}}
    1. 工厂方法使用
    bFactory := &BirdFactory{}    bird := bFactory.CreateAnimal()    bird.Move(100)
原创粉丝点击