package main
import "fmt"
// 测试
type API interface {
Test() string
}
type APICall struct {
// 接口
a AmoudleAPI
b BmoudleAPI
}
func (api *APICall) Test() string {
return fmt.S...
package main
import "fmt"
type Subject interface {
Do() string // 实际业务, 业务系统,检查是否欠费,检查密码是否正确
}
type RealSubject struct {
}
func (sb RealSubject) Do() string {
return "智...
创建文件:Component.go
package Composite
//有的时候是父节点,叶子
type Component interface {
Parent() Component
SetParent(Component)
Name() string
SetName(string)
AddChild(Component)
...
package main
import "fmt"
// 适配器目标接口
type Target interface {
Request(int, int) string
}
type Adapter struct {
Adaptee
}
func NewAdapter(adaptee Adaptee) Target {
return &Adapte...
创建文件:Builder.go
package Builder
type Builder interface {
Part1()
Part2()
Part3()
}
type Director struct {
builder Builder // 建造者的接口
}
// 创造一个接口
func NewDirector(builde...
package main
import "fmt"
// 原型对象需要实现的接口
// copy 原有的对象
type Cloneable interface {
Clone() Cloneable
}
// 原型的类
type PrototypeManager struct {
prototypes map[string]Cloneable
...
package main
import (
"fmt"
"sync"
)
type Single struct {
Data int
}
var singleton *Single
var once sync.Once // 内核信号,时时刻刻只能运行一个
func GetInterface() *Single {
once.Do(...
创建DAOFactory.go
package AbstractFactory
// mysql
// sqlserver
// oracle
// 订单
// 订单报表
type OrderMainDAO interface { // 订单记录
SaveOrderMain() // 保存
//DeleteOrderMain()
//SearchOrd...
新建 OperatorFactory.go
package factory
// 实际运行类的接口
type Operator interface {
SetLeft(int)
SetRight(int)
Result() int
}
// 工厂接口
type OperatorFactory interface {
Create() Opera...
package main
import "fmt"
// 中国人说, 你好
// 英国人说,hello
type API interface {
Say(name string) string
}
func NewAPI(str string) API {
if str == "en" {
return &English{}
...
package main
import (
"fmt"
)
type A interface {
Get()
}
type B struct {
}
func (b *B) Get () {
fmt.Println("b")
}
type C struct {
}
func (c *C) Get () {
fmt.Println("c")
}
f...
项目名称:test
mkdir goproject
cd goproject
mkdir src
mkdir test
进入IDEA, 打开到 test项目,然后配置IDEA的gopath和代理网址:
说明:配置gopath是为了找到bee命令,配置代理网址:https://goproxy.cn,是为...
package main
import (
"fmt"
"github.com/go-redis/redis"
"time"
)
// 定义redis链接池
var RedisTest *redis.Client
// 初始化redis链接池
func init() {
RedisTest = redis.NewClient(&redis.Options...
mac下编译Linux, Windows平台的64位可执行程序:
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go