1. 程式人生 > >Go # 設計模式(三)關閉應用

Go # 設計模式(三)關閉應用

// WaitSignal awaits for SIGINT or SIGTERM and closes the channel
func WaitSignal(stop chan struct{}) {
    sigs := make(chan os.Signal, 1)
    signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
    <-sigs
    close(stop)
    _ = log.Sync()
}

func main(){
    stop := make(chan struct{})
    start(stop)
    WaitSignal(stop)
    time.Sleep(10
) <-stop }

相關推薦

Go # 設計模式關閉應用

// WaitSignal awaits for SIGINT or SIGTERM and closes the channel func WaitSignal(stop chan struct{})

java設計模式模板模式

pro str pan style coff pub 調用 類定義 ted   抽象類中公開定義了執行它的方法的方式,子類可以按需求重寫方法實現,但調用將以抽象類中定義的方式進行,典型應用如銀行辦理業務流程、沖泡飲料流程。下面給出簡單例子,用沸水沖泡飲料,分為四步:將水煮沸

設計模式裝飾者模式Decorator

不知道 operation 總結 界面 都是 per @override stat override   裝飾者模式針對的問題是:對一個結構已經確定的類,在不改變該類的結構的情況下,動態增加一些功能。   一般來說,都是對一些已經寫好的架構增加自己的功能,或者應對多種情況,

設計模式---抽象工廠模式

ava des 模式 println 5.5 mage test 抽象工廠 urn 1、 簡介:為創建一組相關或相互依賴的對象提供一個接口,無需指定它們的具體類。抽象工廠模式通常是用於創創建一族產品,並且這族產品分不同的等級;不同的具體工廠類生產不同等級的一族產品。 2、

多線程:多線程設計模式:Master-Worker模式

fonts strong stat bre not 多線程 too () 部分 Master-Worker模式是常用的並行模式之一,它的核心思想是,系統有兩個進程協作工作:Master進程,負責接收和分配任務;Worker進程,負責處理子任務。當Worker進程將子任務處理

設計模式 工廠模式

初始化 重要 不能 還需 new 不同 參數 裏的 作用 概述: 屬於創建型設計模式,需要生成的對象叫做產品 ,生成對象的地方叫做工廠 。 使用場景: 在任何需要生成復雜對象的地方,都可以使用工廠方法模式。 直接用new可以完成的不需要用工廠模式 下面將介紹五種工廠

用最簡單的例子說明設計模式之責任鏈、建造者、適配器、代理模式、享元模式

def dap CA 抽象 創建 tcl cte clas eth 責任鏈模式 一個請求有多個對象來處理,這些對象是一條鏈,但具體由哪個對象來處理,根據條件判斷來確定,如果不能處理會傳遞給該鏈中的下一個對象,直到有對象處理它為止 使用場景 1)有多個對象可以處理同

設計模式- 狀態模式

.get TP 導致 做到 ring bubuko 對象 狀態 一個 [toc] 狀態模式 當一個對象的內在狀態改變時允許改變其行為,這個對象看起來像是改變了其類。 在平常開發自己也會遇到好多方法過長,裏面的判斷語句太多,導致後續修改十分麻煩。今天看到狀態模式的介紹,覺

設計模式:適配器模式

strong imp 引入 兩個 依賴 提高 復用 三方庫 透明度 介紹 意圖:將類的接口轉換為客戶期望的另一個接口。適配器模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。是作為兩個不兼容的接口之間的橋梁。 主要解決:主要解決在軟件系統中,常常要將一些&quo

Java設計模式之建立型模式:單例模式

一、概念: java中單例模式是一種常見的設計模式,單例模式的寫法有好幾種,這裡主要介紹三種:懶漢式單例、餓漢式單例、登記式單例。 單例模式有以下特點: (1)單例類只能有一個例項; (2)單例類必須自己建立自己的唯一例項; (3)單例類必須給所有其他物件提供這一例項。 單例

常用軟體設計模式工廠方法模式

工廠方法模式:定義一個用於建立物件的介面,讓其子類決定例項化哪一個工廠類,工廠模式使其建立過程延遲到子類進行。 優點:1、一個呼叫者想建立一個物件,只要知道其名稱就可以了           

Java的設計模式

代理模式   代理模式為另一個物件提供一個替身或佔位符以控制對這個物件的訪問。   何為提供一個替身或佔位符?即一個物件代表另一個物件。有什麼事直接告訴代理物件,不必麻煩真正的物件,由代理物件來決定哪些事情去交給真正的物件。舉個例子,以前男女婚配,由男方家庭去拜託媒人,媒人轉告女方,此時媒人就是代理物件,

磊哥學設計模式抽象工廠模式

抽象工廠 什麼是抽象工廠 抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。 在抽象工廠模式中,介面是負責建立一個相關物件的工廠,不需要

設計模式工廠模式

簡單工廠模式違反了開放—封閉原則,工廠模式解除了其弊端 工廠方法模式,定義一個建立物件的介面,讓子類決定例項化哪一個類。工廠方法使一個類的例項化延遲到子類 簡單工廠模式用switchcase在一個類中,建立相應的類,工廠模式是為每一個類建立一個例項化該類的類,例如OperationAdd

設計模式建造者模式Builder建立型

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

PHP設計模式——建造者模式(Builder Pattern)

@[TOC](PHP設計模式(三)——建造者模式(Builder Pattern)) 建造者模式(Builder Pattern):將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。 建造者模式是一步一步建立一個複雜的物件,它允許使用者只通過指定複雜物件的

go 設計模式單例模式

go 的單例模式寫法比較簡單,可以通過sync.Once來輔助。 type Singleton struct { name string } var ( once sync.Once instance *Singleton ) func New()

設計模式

裝飾模式 首先這個是分成3個級別,person基類,finery次基類,tshirt子類,bigtrouser子類 關鍵在於次基類把基類作為欄位,並且用decoreate方法person做引數給次基類類做賦值 都有show方法,次基類重寫了show方法,呼叫基類物件的show方法,

Java 設計模式:抽象工廠模式

參考連結:抽象工廠模式-Abstract Factory Pattern 工廠方法模式解決了簡單工廠模式存在的問題,但由於工廠方法模式中的每個工廠只生產一類產品,可能會導致系統中存在大量的工廠類,勢必會增加系統的開銷。此時,我們可以考慮將一些相關的產品組成一個“產品族”,由同一個工廠

設計模式---原型模式

吐槽 今天帶貓貓去打針,然後她各種皮,差點從袋子裡面跑出去了emmmmm,早上上課時候,編譯原理上上課居然就聽不懂了,很尷尬,趕緊回去補。 什麼叫原型模式 就是類似鳴人的影分身之術,可以克隆物件 定義:用原型例項指向建立物件的種類,並通過複製這些原型建立新的物件