將一個請求封裝為物件,讓你可用不同的請求對客戶進行參數化。對請求排隊或記錄請求日誌,以及支援可取消的操作。
Saturday, December 15, 2012
Wednesday, December 12, 2012
Monday, December 10, 2012
重構-Code Refactoring-Vol.2
1.Replace Temp with Query
2.Introduce Explaining Variable
3.Split Temporary Variable
4.Remove Assignments to Parameters
5.Replace Method with Method Object
6.Substitute Algorithm
Design Patterns-Singleton Pattern& Thread
Singleton Patterns
保證一個類別僅有一個Instance,並提供一個全域訪問點。
1.該物件自行決定是否被Instance,而不是靠其他物件初始化。(將該物件的Constructor需告成Private)。
2.因建構子私有化,所以產生一個Method為公有化(物件為Publuc 、Static)。
Sunday, December 9, 2012
Windows Sockets & C++
網路程式-C/S、B/S
Client/Server:C/S
1.Client將需求傳遞給Server,再將Server回傳的結果已一定形式提供給使用者。2.Server通常處於休眠狀態,直到客戶端對該伺服器發出連線請求,將其喚醒。
Browser/Server:B/S
1.客戶端執行瀏覽器,瀏覽器以超文字形式向Web伺服器提出存取資料庫請求。2.Web瀏覽器是客戶端主要的軟體,系統功能實作的核心部分集中到伺服器上。
Friday, December 7, 2012
Component-based Development & XNA & Design Patterns
他強調把程式碼的功能性分開的軟體開發過程。
Component based Programming在遊戲引擎裡被廣泛得運用,如Unity3D:
Component Based Programming由三個主要構成:
System: 處理Render、Physics、Particle。
Entries:又稱為GameObject,出現在遊戲引擎畫面上的物件(游標、地板…等)。
Component:一個Entries可能會包含數個Componets,為這物件添加功能如Box Collider(物件碰撞網格)、Mesh Renderer(Render畫面)。
Thursday, December 6, 2012
Design Patterns-Memento Pattern
備忘錄模式-在這如果我想做一個遊戲,以RPG來說,在進入遊戲戰鬥時我可以讓玩家選擇重新開始這場戰鬥,就像FFXIII玩家可以在戰鬥中隨時重新挑戰怪物更高分數、不同打法,
那該如何儲存腳色能力?
Tuesday, December 4, 2012
Monday, December 3, 2012
重構-Code Refactoring Principles
Why Code Refactoring Work:
1.難以閱讀的程式,難以修改。2.邏輯重複,難以修改。
3.添加行為時需要修改現有程式碼,難以修改。(同時違反Desing Patterns:Open Close Principle)
4.複雜條件邏輯程式,難以修改。
Indirection and Refactoring:
1.Enable sharing of logic
一個sunmethod在兩個不同的地點被呼叫,或是superclass中的method被subclasses共享。2.To explain intention and implementation separately:
選擇每個Class和Method的名字,來解釋自己意圖的機會。Class或Method內部解釋和實現這意圖的做法。3.To isolate change:
在兩個不同地點同時使用同一個物件,其中一個地點想改變物件行為,則產生"同時影響兩處"的風險。為此可做出一個subclass,並在需要修改處引用這個subclass,這樣就不必承擔這風險。4.To encode conditional:
利用polymorphism,可以靈活彈性而清楚地表達條件邏輯。(Desing Patterns:strategy pattern)。重構是為了"未來"而不是為了"當下"。
Don't Do Code Refactoring when Project is reach Deadline.
從重構過程贏的生產力只有在最後期限過後才能夠體現出來,所以當專案已近最後期限,避免重構。
Subscribe to:
Posts (Atom)