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...
要求
比较两个版本号 version1 和 version2。
如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。
你可以假设版本字符串非空,并且只包含数字和 . 字符。
. 字符不代表小数点,而...
要求
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存...
什么是策略模式?
不同的算法按照统一的标准封装,客户端根据不同的场景,决策使用何种算法。
优势
典型的高内聚:算法和算法之间完全独立、互不干扰
典型的松耦合:客户端依赖的是接口的抽象方法
沉淀:每一个封装好的...
代码示例:
package main
import (
"fmt"
"math"
"reflect"
"strconv"
)
func main() {
numF := 0.2253
// 保留两位小数, 通用
value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", numF), 64)
fm...
go-redis对redis执行批量操作的类是Pipeliner,具体示例如下.
运行该示例可在redis服务端依次接收到:
MULTI
incr tx_pipeline_counter
expire tx_pipeline_counter 3600
EXEC
多条命令采用批量处理不止节省网络时...
栈的介绍
栈的英文为stack
栈是一个先入后出(FILO-First In Last Out)的有序列表
栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),...