Head First 設計模式學習筆記(2)–觀察者模式

Head First 設計模式學習筆記(2) 定義1:觀察者模式:觀察者模式定義了對象之間的一對多依賴,這樣以來,當一個對象改變狀態時,它的所有依賴者都會收到通知並自動更新。  設計原則1:為了互動對象之間的松耦合設計而努力吧~  問題1:為什麼觀察者模式具有松耦合的特點?回答1:對於觀察者的一切,主題只需要知道觀察者實現了某個介面,而不需要知道觀察者的具體類是什麼。主題唯一依賴的東西是一個實現observer介面的對象列表,所以我們可以隨時增加、刪除觀察者。改變主題或者觀察者其中一方,並不會影

Mangos遊戲伺服器源碼-預研

        工作一年以來,在CSDN上幾乎沒寫過部落格,對此感到十分羞愧,除了懶,我不想用任何借口來解釋。        工作中寫過一些遊戲伺服器的文檔,不過都是內部文檔,不便於發表在CSDN上,現在想在CSDN上寫點東西,也算是對工作以來的一個總結,也希望後面的部落格能夠對其他同學有些啟發和協助。        

DLL入門到深入(3)

這篇繼前面接著講dll匯出類。 在講之前,還是看下MSDN http://msdn.microsoft.com/zh-cn/library/d91k01sh(VS.80).aspx中關於.def檔案的說明,其中有這樣一句話:如果不使用 __declspec(dllexport) 關鍵字匯出 DLL 的函數,則 DLL 需要 .def 檔案。 回想一下前面《DLL入門到深入(1)》 中我包含了一個.def檔案,事實上並不需要這個檔案,可是編譯不通過,我也不知道為什麼。這個問題等等再說,先看代碼: 

第四章–輸出文字學習記錄

1: 在發生下面幾種事件之一時,視窗訊息處理常式會接收到一個WM_PAINT訊息:    ---在使用者移動視窗或顯示視窗時,視窗中先前被隱藏的地區重新可見  ---使用者改變視窗的大小(如果視窗類別別樣式有著CS_HREDRAW和CS_VREDRAW位旗標的設定)    ---程式使用ScrollWindow或ScrollDC函數滾動顯示地區的一部分    ---程式使用InvalidateRect或InvalidateRgn函數刻意產生WM_PAINT訊息2:

DLL入門到深入(1)

最簡單的例子,過程如下: 1:建立一個控制台空工程 2:添加3個檔案:dll_01.h,dll_01.cpp,dll_01.def; 3:在dll_01.h中如是寫: #ifndef DLL_01_H_ //這2句不用說了吧#define DLL_01_H_#if defined DLL_EXPORT //在dll_01.cpp中會define DLL_EXPORT#define DECLDIR _declspec(dllexport)#else#define DECLDIR

cocos2d-x庖丁解牛(1):CCParallaxNode源碼分析

/** CCPointObject用於記錄CCParallaxNode孩子節點的ratio和offset屬性 **/class CCPointObject : CCObject{ //視差速率 CC_SYNTHESIZE(CCPoint, m_tRatio, Ratio) //在CCParallaxNode中的位移量 CC_SYNTHESIZE(CCPoint, m_tOffset, Offset) CC_SYNTHESIZE(CCNode *,m_pChild,

第三章—視窗與訊息學習記錄

windows程式設計-----視窗與訊息學習記錄。1: 一個視窗就是螢幕上的一個矩形地區,它接收使用者的輸入並以文字或圖形的格式顯示輸出內容2: 訊息視窗有一個帶關閉按鈕的標題列、一個選項表徵圖、一行或多行文字,以及最多四個按鈕。必須選擇Windows提供給的表徵圖與按鈕。3: 不能在訊息框中顯示圖形,而且也不能在訊息框中添加菜單4:

DLL入門到深入(2)

由(1)http://blog.csdn.net/xiadasong007/archive/2009/10/13/4665932.aspx,庫還可以動態載入,只修改Test.cpp的內容,代碼如下: #include <Windows.h>#include <iostream>using namespace std; typedef int (*AddFunc)(int,int); int main(){ AddFunc Add; HINSTANCE

AVAudioPlayer後台暫停bug

問題描述:遊戲中暫停後,調用AVAudioPlayer的pause方法,發現返回遊戲後音樂還在播放。問題解決:參考http://stackoverflow.com/questions/6403261/avaudioplayer-keeps-playing-after-multitasking附:I have spent hours today with precisely the same problem. I finally have a workaround.The #stop

有關前面DLL和CreateRemoteThread函數綜合說明

前面講了DLL和CreateRemoteThread函數的基本用法,然而如果你想做個實用點的東西,還必須注意許多細節,這篇算是前面的小綜合。 我們的目的是要在QQ.exe進程中插入一個新線程,這個線程會調用LoadLibrary()來載入我們自己寫的DLL。 說下思路 1:DLL中的DllMain函數 首先需要說明的是,DLL檔案不只是用來做儲存的庫,它也可以像exe檔案那樣運行程式,而前面我們講的DLL都是單純的用它來匯出函數和類,可能會誤導某些和我一樣的初學者,不過不要緊,要像exe那樣運行

MFC中Console調試輸出類(泣血而作)

MFC中Console調試輸出類1:本類來源於CodeProject,本人稍加修改,使其使用更加方便。2:使用步驟    1:將該源檔案加入到工程    2:在代碼任意處調用CConsole::Output("...")調用來輸出調試資訊。  3:請記得在程式的某處關閉控制台以釋放資源3:使用單例模式,_DEBUG選擇編譯。 附代碼:1 標頭檔:#if !defined(__CONSOLE_H_)#define __CONSOLE_H_#ifdef _DEBUGclass

cocos2d-x關於CC_ASSERT斷言BUG!

程式在debug模式下正常運行,而在release模式下卻發生莫名的異常,異常非常詭異,弄的我甚至懷疑cocos2d-x的原始碼。晚上在公司比較閑,正好可以慢慢進行排查,最後發現在我自訂的action中出現問題。這個action負責GLSL特效部分,部分代碼如下:void JEffectAction::startWithTarget(CCNode *pTarget){ CCSprite * spr = dynamic_cast<CCSprite*>(pTarget);

開關電源原理與設計串聯式開關電源輸出電壓濾波電路(二)

1-2-2.串聯式開關電源輸出電壓濾波電路      大多數開關電源輸出都是直流電壓,因此,一般開關電源的輸出電路都帶有整流濾波電路。圖1-2是帶有整流濾波功能的串聯式開關電源工作原理圖。      

Head First設計模式學習筆記(1)——Duck與策略模式

Head First設計模式學習筆記(1)——Duck與策略模式  設計原則1:找出應用中可能需要變化之處,把他們獨立出來,不要和那些不需要變化的代碼混合在一起設計原則2:針對借口編程,而不是針對實現編程設計原則3:多用組合,少用繼承  問題1:為什麼不使用繼承來提供Duck的行為,而是使用介面?回答1:如果使用繼承來實現,則代碼在多個子類中重複,運行時的行為不容易改變,很難知道所有鴨子的全部行為,改變會牽一髮而動全身,造成其他鴨子不想要的改變。使用介面像是在做選擇題,而繼承則是填空題,相較之下

DirectShow之配置說明

    目前正在寫一個網路音視訊交談及檔案傳輸系統,主要完成在區域網路內的音視訊交談,檔案傳輸,群組視訊會議等。系統的視頻編碼採用H263編碼格式,並採用RTP/RTCP協議,以保證視頻的傳輸品質。    這個項目剛剛啟動,需要學習的東西有許多,如音視頻的捕獲、視頻的編解碼、RTP/RTCP協議等。    這兩天一直在查DirectShow方面的資料,收穫很多,這裡將DirectShow的配置簡要在這裡提一下。    首先需要下載DX(SDK),我沒有下載最新的DX,而是在網上找了個DX9.0,

LuaRegex(精簡而不失大師風範)

Regex作為一種通用的算式,大量用於文本處理邏輯中,其主要好處是速度能夠達到極致,而且代碼量通常會非常少,本篇主要介紹lua中的正則使用,由於這樣的文章網上隨處都可以搜到,而且不乏整理的不錯的,這裡就不想再重新做這件事情。Regex主要處理匹配問題,即通過給定語義萬用字元串,返回匹配成功的字串列表。 在匹配的基礎上,正則引擎往往提供了字串的尋找、替換、分割等功能,lua支援尋找與替換,但不支援分割,分割函數可以在已有介面上進行擴充,附錄中引用了lua社區的實現代碼。 本篇單純的簡要介紹lua的

glut鍵盤輸入詳解

       glut鍵盤輸入一 當你按下一個鍵後,GLUT提供了兩個函數為這個鍵盤訊息註冊回調①glutKeyboardFunc普通按鍵的按鍵訊息。    這個函數是告訴視窗系統,哪一個函數將會被調用來處理普通按鍵訊息。    普通鍵是指字母,數字,和其他可以用ASCII代碼錶示的鍵。函數原型如下:    void glutKeyboardFunc(void(*func)(unsigned char key,int x,int y));    參數:    func:

cocos2d-x之Facebook平台接入介面

   簡介:           本文檔主要闡述遊戲中接入Facebook平台的相關內容,使得接入過程儘可能詳盡而簡單。  第一步:認證(Authenticate)Facebook SDK中較為核心的一個類是FBSession,該類主要用於使用者驗證、系統管理使用者登陸流程。   在寫代碼之前,首先需要加入Facebook SDK,在官網下載SDK後,將FacebookSDK.framework加入到工程中,這樣我們就可以使用facebook的介面了。                      

cocos2d-x之SIGPIPE異常詳細解決方案

SIGPIPE異常會觸發中斷,通常註冊中斷函數即可,代碼如下:struct sigaction sa;struct sigaction osa;sa.sa_handler = custom_handle;sigaction(SIGPIPE, &sa, &osa);但是這隻解決了一部分問題,還有一個一個比較煩人的問題是xcode會在SIGPIPE觸發時產生一個DEBUG中斷,解決辦法是添加一個斷點處理action,如下如果是gdb編譯器,則執行如下actionhandle

Head First設計模式學習筆記(8)—適配器模式

 Head First設計模式學習筆記(8)---適配器模式  適配器模式:適配器模式將一個類的介面轉換成客戶期望的另一個介面。適配器讓原本介面不可相容的類可以合作無間。 面板模式:面板模式提供了一個統一的介面,用來訪問子系統中的一群介面。外觀定義了一個高層介面,讓子系統更容易使用。 設計原則1:最少知識原則:只和你的密友談話。  圖(1)對象適配器 圖(2)類適配器 總結1:裝飾器模式的意圖是將一個介面轉成另一個介面;適配器模式的意圖是不改變介面,但加入責任;而面板模式是為了讓介面更簡單。 

總頁數: 61357 1 .... 20360 20361 20362 20363 20364 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.