Go實現設計模式系列(2) Go實現New模式

2021-10-08 14:38:07 字數 896 閱讀 4348

這幾乎是我們最常用的模式,因為太常用了,以致於我們並沒有它當成一種模式。

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...