這幾乎是我們最常用的模式,因為太常用了,以致於我們並沒有它當成一種模式。
new 模式屬於建立型模式的一種,作為最基礎的建立型模式而被我們廣泛使用
來看看new模式的五大要素:
我們想要獲取乙個伺服器物件,該伺服器物件實現了start,stop
兩個介面
new.go
:
package
newimport
"fmt"
// service介面
type service inte***ce
// server結構實現了service介面
type server struct
func
(s *server)
start()
func
(s *server)
stop()
// newservice返回了乙個service介面,實際返回的是server物件
func
newservice
() service
}
new_test.go
:
package
newimport
"testing"
func
testnewservice
(t *testing.t)
執行測試結果:
==
= run testnewservice
service start
service stop
--- pass: testnewservice (0.00s)
pass
(2)Go實現順序佇列
佇列是一種線性結構 只能從一端 隊尾 新增元素,只能從另一端 隊首 取出元素,屬於先進先出的結構 順序佇列的實現 type queue inte ce type slicequeue struct func newqueue slicequeue func i slicequeue len int ...
Go實現設計模式系列(8) Go實現物件池模式
物件池模式,物件被預先建立並初始化後放入物件池中,物件提供者,物件提供者就能利用已有的物件來處理請求,減少物件頻繁建立所浪費的資源。例如資料庫的連線池等等,基本都是建立後就被放入連線池中,後續的查詢請求使用的都是連線池中的物件,從而加快了查詢速度 不然每次查詢都需要重新建立資料庫連線物件,比較浪費 ...
go實現設計模式系列文章 迭代器模式
迭代器模式的作用是對集合中的元素進行某種規則的遍歷 一般是順序遍歷 是不是跟大家經常用的for迴圈很像?不過迭代器對其進行了抽象化 通用化。下面看下示例 我們用迭代器模式來實現書架書籍的遍歷 package iterator type aggregate inte ce package iterat...