美文网首页
简单工厂模式

简单工厂模式

作者: 简书网abc | 来源:发表于2021-06-19 20:30 被阅读0次
package main

import "fmt"

// 动物都有Speak()方法
type Speaker interface {
    Speak()
    SetInfo(name, master string) // 这里调用的实际上是animal类型的方法
}

// 动物
type animal struct {
    name   string
    master string
}

// 给动物设置基本信息
func (a *animal) SetInfo(name, master string) {
    a.name = name
    a.master = master
}

// 具体物种
type dog struct {
    animal
}
func (d *dog) Speak() {
    fmt.Printf("我叫[%v], 我的主人是[%v], 汪汪汪~\n", d.name, d.master)
}

type cat struct {
    animal
}
func (c *cat) Speak() {
    fmt.Printf("我叫[%v], [%v]才不是我的主人呢, 明明是我的铲屎官\n", c.name, c.master)
}

type pig struct {
    animal
}
func (p *pig) Speak() {
    fmt.Printf("我叫[%v], 每天都是[%v]给饭我吃, 我吃饱了就想睡觉\n", p.name, p.master)
}



// 生产动物的工厂
type AnimalFactory struct{}
// 工厂生产动物 简单工厂模式  让工厂来生成我们想要的实际对象,进而对对象进行一系列操作。
func (a AnimalFactory) GetAnimal(animalType string) Speaker {
    var speaker Speaker
    switch animalType {
    case "dog":
        speaker = new(dog)
    case "cat":
        speaker = new(cat)
    case "pig":
        speaker = new(pig)
    }
    return speaker
}




func main() {
    var af AnimalFactory
    var speaker Speaker
    fmt.Printf("%T ==== %+v\n", speaker, speaker)

    speaker = af.GetAnimal("dog")
    speaker.SetInfo("小黑", "张三")
    speaker.Speak()

    speaker = af.GetAnimal("cat")
    speaker.SetInfo("喵呜", "marry")
    speaker.Speak()

    speaker = af.GetAnimal("pig")
    speaker.SetInfo("粉红猪小妹", "猪倌")
    speaker.Speak()

    fmt.Printf("%T ==== %+v", speaker, speaker)
}

相关文章

  • [Android]三种工厂模式总结。

    Android中,工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。 一.简单工厂模式。 定义:简单工厂...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 工厂模式

    工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

  • Java设计模式——工厂模式

    工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • 相近设计模式比较

    设计模式干货: 简单工厂模式 vs. 工厂模式 vs. 抽象工厂模式简单工厂和工厂模式区别? 简单工厂没有多个子类...

  • Android设计模式:工厂设计模式

    目录 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式是所有工厂模式的基础,不属于23种设计模式范...

  • 设计模式2-工厂模式

    工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式 简单工厂模式 简单工厂模式,就是建立一个工厂类,对实现了同一...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • 设计模式-工厂模式

    一、工厂模式分类 简单工厂模式 工厂方法模式 抽象工厂模式 二、简单工厂模式 简单工厂就是讲需要new对象的那段代...

网友评论

      本文标题:简单工厂模式

      本文链接:https://www.haomeiwen.com/subject/ylejlktx.html