4 工廠模式 通訊套接字

2021-10-03 11:12:13 字數 2184 閱讀 1693

什麼是簡單工廠模式?

答:使用乙個單獨的類來做建立勢力的過程,就是工廠。比如:

(1)有兩個類:class requestcodec : public codecclass respondcodec : public codec,兩個類都繼承抽象類class codec

(2)若要建立兩個類的物件時,需要直接呼叫該類的建構函式;

(3)但若使用工廠模式,可以直接建立工廠類的物件,通過呼叫工廠類中已經實現好的成員函式,根據傳參不同來建立兩個類的物件;

(4)通過工廠模式建立的兩個類的物件是codec型別物件,但由於多型,因此可以直接當作子類物件來使用。

簡單工廠模式實現與使用?

//1. 兩個類繼承抽象類codec

class

requestcodec

:public codec

class

respondcodec

:public codec

//2.建立工廠類

class

basefactory

~basefactory()

通過成員函式建立兩個類的物件

codec *

createcodec

(int flag)

else

if(flag ==2)

//requestcodec類

//返回codec型別的物件

return c;}}

;

工廠類的使用

basefactory *fac =

newbasefactory()

;//建立工廠類物件

codec *codec = fac.

createcodec(1

);//生成父類物件指標

codec-

>

encodemsg()

;//通過多型,父類指標指向子類物件

什麼是工廠模式?

答:(1)簡單工廠模式只有乙個工廠類,使用時只要傳入不同的引數,就可以建立不同類的物件。但若要增加新的類到工廠類時,就需要修改工廠類的**,擴充套件性差。

(2)而工廠模式可以建立多個工廠類,所有工廠類都繼承乙個抽象類工廠基類,且每個工廠類只用來生成一種類的物件,使用時建立基類的工廠類物件指標,通過多型就可以呼叫不同派生工廠類中成員函式,以此來建立不同的類物件。若要建立新的類的物件時,只需要增加工廠類的派生類即可,而不許修改工廠類的**。

工廠模式的實現及使用?

//1.兩個類都繼承抽象類codec

class

requestcodec

:public codec

class

respondcodec

:public codec

//2.建立工廠類基類

class

basefactory

//工廠派生類必須要建立codec不同派生類的物件

virtual codec *

createcodec()

;~basefactory()

};//3.建立工廠派生類,每個類之建立一種類物件

class

requestfactory

//建立requestcodec物件函式

codec *

createrequest()

~requestfactory()

};class

respondfactory

//建立respondcodec物件函式

codec *

createrequest()

~respondfactory()

};

工廠類的使用

//建立工廠基類物件指標指向工廠派生類物件

basefactory *bf =

newrequestfactory()

;//通過多型,基類物件指標呼叫派生類成員函式來建立指定類基類的物件指標

codec *codec = bf-

>

creatrequest()

;//通過多型,基類物件指標呼叫派生類成員函式

codec-

>

encodemsg()

;

套接字通訊

利用三元組 ip位址,協議,埠 就可以標識網路的程序 socket即是一種特殊的檔案,一些socket函式就是對其進行的操作 讀 寫io 開啟 關閉 socket是 open write read close 模式的一種實現,那麼socket就提供了這些操作對應的函式介面 tcp通訊中的socket...

套接字通訊

套接字家族的名字 af unix unix一切皆檔案,基於檔案的套接字呼叫的就是底層的檔案系統來取資料,兩個套接字程序執行在同一機器,可以通過訪問同乙個檔案系統間接完成通訊 套接字家族的名字 af inet 還有af inet6被用於ipv6,還有一些其他的位址家族,不過,他們要麼是只用於某個平台,...

socket 套接字通訊

要通過internet進行通訊,至少需要一對套接字,其中乙個執行在客戶端,稱之為clientsocket,另乙個執行於伺服器端面,稱為serversocket。根據連線啟動的方式以及本地要連線的目標,套接字之間的連線過程可以分為三個步驟 伺服器監聽 客戶端請求 連線確認。伺服器監聽是指服務端套接字並...