golang中的对象工厂

我是 golang 的新手。我需要设计一个函数来根据输入创建不同类型的对象。但是我没有弄清楚如何设计界面。这是我的代码:


package main


import (

    "fmt"

)


type AA struct{

    name string

}


func (this *AA) say(){

    fmt.Println("==========>AA")

}

type BB struct{

    *AA

    age int

}

func (this *BB) say(){

    fmt.Println("==========>BB")

}


func ObjectFactory(type int) *AA {

    if type ==1 {

        return new(AA)

    }else{

        return new(BB)

    }

}


func main() {

    obj1 := ObjectFactory(0)

    obj1.say()

    obj2 := ObjectFactory(0)

    obj2.say()

}

无论我要求 ObjectFactory return *AA 还是 interface{},编译器都会告诉我错误。我怎样才能让它工作?


三国纷争
浏览 205回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go