Golang设计模式之简单工厂模式

Jackey Golang 2,482 次浏览 , , 没有评论
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package main
import "fmt"
// 中国人说, 你好
// 英国人说,hello
type API interface {
Say(name string) string
}
func NewAPI(str string) API {
if str == "en" {
return &English{}
} else if str == "cn" {
return &Chinese{}
} else {
return nil
}
}
type Chinese struct {
}
func (*Chinese) Say(name string) string {
return "你好 " + name
}
type English struct {
}
func (*English) Say(name string) string {
return "hello " + name
}
func main() {
api := NewAPI("cn")
server := api.Say("张三")
fmt.Println(server)
api1 := NewAPI("en")
server1 := api1.Say("Jackey")
fmt.Println(server1)
}
package main import "fmt" // 中国人说, 你好 // 英国人说,hello type API interface { Say(name string) string } func NewAPI(str string) API { if str == "en" { return &English{} } else if str == "cn" { return &Chinese{} } else { return nil } } type Chinese struct { } func (*Chinese) Say(name string) string { return "你好 " + name } type English struct { } func (*English) Say(name string) string { return "hello " + name } func main() { api := NewAPI("cn") server := api.Say("张三") fmt.Println(server) api1 := NewAPI("en") server1 := api1.Say("Jackey") fmt.Println(server1) }
package main

import "fmt"

// 中国人说, 你好
// 英国人说,hello

type API interface {
    Say(name string) string
}

func NewAPI(str string) API {
    if str == "en" {
        return &English{}
    } else if str == "cn" {
        return &Chinese{}
    } else {
        return nil
    }
}

type Chinese struct {
}

func (*Chinese) Say(name string) string {
    return "你好 " + name
}

type English struct {
}

func (*English) Say(name string) string {
    return "hello " + name
}

func main() {
    api := NewAPI("cn")
    server := api.Say("张三")
    fmt.Println(server)

    api1 := NewAPI("en")
    server1 := api1.Say("Jackey")
    fmt.Println(server1)
}

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Go