Time of Update: 2018-12-07
意圖:定義一系列的演算法,把他們一一封裝起來,使得他們可以互相替代,使得演算法可以獨立於對象的變化適用性:許多相關的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法。需要使用一個演算法的不同變體。例如,你可能會定義一些反映不同的空間/時間權衡的演算法。當這些變體實現為一個演算法的類層次時[ H O 8 7 ],可以使用原則模式。演算法使用客戶不應該知道的資料。可使用原則模式以避免暴露複雜的、與演算法相關的資料結構。一個類定義了多種行為,
Time of Update: 2018-12-07
今天遇到了VMware提示實體記憶體不足的問題,而且虛擬機器還是處於pause狀態,不能poweroff和reset.想用pae來將win7的記憶體提升到4g,起來之後還是提示實體記憶體不足.於是乎,麼有辦法只能去google。萬幸看到了令狐少俠兄的那篇《解決vmware的“實體記憶體不足”》的部落格,於是乎到appdata下找到了vmwareworkstation下找到了config.ini更改prefvmx.useRecommendedLockedMemSize
Time of Update: 2018-12-07
意圖:定義一個用於建立對象的介面,讓子類決定執行個體化哪個類適用性:當一個類不知道它所必須建立的類的對象時當一個類希望由它的子類來制定它所建立的對象的時候當類將建立對象的職責委託給多個協助子類的一個是,並且你希望將哪一個協助子類是代理者這一資訊局部化的時候樣本圖:範例程式碼: //工廠根據產品id生產產品class CFactory{public: CFactory(void);public: ~CFactory(void); public: staticCProduct*
Time of Update: 2018-12-07
意圖:使多個對象都有機會處理請求,從而避免請求的寄件者和接收者之間的耦合關係.將這些對象連成一條鏈,並沿著這條鏈傳遞請求,直到一個對象處理它為止.適用性:有多個對象可以處理一個請求,那個對象處理該請求運行時自動確定你想在不明確制定接受者的情況下,向多個對象中的一個提交一個請求可處理一個請求的對象集合應被動態指定樣本圖:範例程式碼:class CHandler{public: CHandler(CHandler*nextHandler);public: ~CHandler(void);
Time of Update: 2018-12-07
很多因素致使軟體錯綜複雜,其中最主要的因素是領域本身錯綜複雜.領域驅動講求將領域模型作為領域專家、分析人員、開發人員之間交流溝通的核心.所以要在開發中找到一個好的領域模型,好的領域模型不是僅僅停留在表面,而要深入到領域的實質結構。勢必需要達到瞭解或者精通領域業務的層次。當然有領域專家的輔助可以節省一些挖掘領域業務知識的時間和精力.領域模型是領域專家和分析人員互相沉澱知識的一個工具,它協助分析人員理解領域知識,也為領域專家提供一個規範的表達形式,有條有理的描繪領域知識,分析、解決領域問題。另外,領
Time of Update: 2018-12-07
意圖:為一系列相關對象或相互依賴對象提供一個建立介面.:AbstractFactory為建立對象聲明一個介面,真正建立對象由ConcreteFactory(FactoryA/FactoryB)實現.一個具體的工廠將為每個產品中定義該Factory
Time of Update: 2018-12-07
原文作者喬納森·丹尼可(Jonathan
Time of Update: 2018-12-07
意圖:將抽象部分和它的實現部分分離,使得它們都可以獨立的變化適用性:不希望抽象和實現部分有一個固定的綁定關係類的抽象以及它的實現可以通過產生子類的方法加以擴充對一個抽象的實現部分的修改應對客戶不產生影響你對客戶晚產隱藏抽象的實現部分樣本圖:範例程式碼://瓶子裝液體,搖晃瓶子,液體跟著蕩漾//填充液體void CBottle::Fill(CLiquid* pLiquid){ m_pLiquid =pLiquid;}//搖晃瓶子void
Time of Update: 2018-12-07
意圖:用原型樣本指定建立對象的種類,通過拷貝這些原型建立新的對象適用性:當執行個體化的類是在運行時指定時為了避免建立一個與產品類平行的工廠類當一個類的樣本只能有幾個不同狀態組合中的一種時樣本圖:範例程式碼:#pragma once//孫悟空一變二二變四…class CMonkeyKing{public: CMonkeyKing(inti);public: ~CMonkeyKing(void); public: voidDisplay() { if(m_
Time of Update: 2018-12-07
1配置認證方式為LDAP<beans:beanid="ldapAuthProvider"class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider"><beans:constructor-arg><beans:beanclass="org.springframework.security.ldap.authentication.BindAuthenticato
Time of Update: 2018-12-07
最近在研究使用安裝包打包,簡單研究之後選擇InstallShield來實現安裝包打包,一開始非常簡單,但是開始之後總是磕磕碰碰非常不順利,網上大量google/baidu之後發現如下資料,特此備忘!http://www.cnblogs.com/Cindy_weiwei/InstallShield-海洋女神(安裝的本質就是拷貝) http://wglnngt-001.blog.163.com/blog/static/4077058420091114114655168/ InstallShield實
Time of Update: 2018-12-07
最近開始研究 GWT,但是按照google code中的描述進行連網安裝gwt/gwt designer plugin總是失敗.無奈之下只能google如何下載並安裝了.google之後總算有了眉目,在這裡記錄以備以後查看。1,下載gpe:http://code.google.com/p/googleappengine/並安裝.2,下載gwt:http://code.google.com/intl/zh-CN/webtoolkit/download.html3,下載gwt
Time of Update: 2018-12-07
意圖:講一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化,對請求排隊或者記錄請求日誌,以及支援可撤銷的操作.通過將請求本身變成一個對象來使工具箱對象可向未指定的應用對象提出請求適用性:抽象出待執行的動作以參數化某對象,可以通過回呼函數表達這種參數化支援取消操作(UnExecute)樣本圖:範例程式碼:#pragma once#include "Move.h"//command基類提供Execute介面class
Time of Update: 2018-12-07
IE使用TLS串連伺服器失敗,在經過n多查詢之後發現windows如下更新說明:此更新不是終端使用者能夠安裝的安全更新。建議只對伺服器管理員使用此更新。此更新會部署一個在受影響的系統上禁用傳輸層安全 (TLS) 和安全通訊端層 (SSL) 重新協商支援的替代方法,以協助保護串連到此類伺服器的用戶端以免被該漏洞所利用。TLS
Time of Update: 2018-12-07
意圖:為其他對象提供一種代理以控制對這個對象的訪問動機:為了只有在我們確實需要這個對象時才對它進行建立和初始化用一個proxy替代那個對象並在需要的時候執行個體化這個對象適用性:在需要用比較通用和複雜的對象指標代替簡單的指標的時候,使用代理(Proxy)模式樣本圖:聽眾聽人演講,演講者通過擴音器來演說,擴音器起來的了一個中間代理的作用.範例程式碼://演講者基類class CSpeaker{public: CSpeaker(void);public: ~CSpeaker(void);
Time of Update: 2018-12-07
意圖:定義一個操作中的演算法的骨架,而將一些步驟 延遲到子類中適用性:一次性實現演算法的不變部分,並將可變的行為留給子類實現各自類中的公用的行為應被提取出來並集中到一個公用父類中以避免代碼重複控制子類擴充,模板方法只在特定點調用”hook”操作樣本圖:範例程式碼://演算法實現中包含公用部分virtual void Calc(){ _tprintf(_T("Startcalc/n"));//公用部分 int valu =this->Op1()+this->Op2();/
Time of Update: 2018-12-07
最近看程式員修鍊之道,看到曳光彈這裡,一直被這個概念所困擾。因為一直以來基本上碰到需求肯定是先寫一個簡單的Demo來實現,然後再將這些代碼整理重構之後放入相應的模組中。這可以簡單的理解為原型。但是顯然與曳光彈不同,曳光彈的作用在於不斷的接近目標,也就是用於定位目標。那麼實際的軟體開發中又是如何使用曳光彈呢?這一直困擾著我,然後尋找相關資料才有點點感悟,卻不知是否正確。在我的理解中,可能是這樣的。某個需求到達了,那麼為了開發這個需求,可能需要先寫一部分相關商務邏輯代碼。但是這部分邏輯代碼卻不是很明
Time of Update: 2018-12-07
意圖:將對象組合成樹型結構以表示”部分-整體”的階層。Composite使得使用者對於單個對象和組合對象的使用具有一致性Compoite模式的關鍵是一個抽象類別,即表示具體類也表示容器.:適用性:你想表示對象的部分-整體階層你希望使用者忽略組合對象和單個對象的不同,使用者將統一的使用組合結構中的所有對象範例程式碼:animal:單個對象//單個動物實體class CAnimal{int id;public: CAnimal(int i) { id = i;
Time of Update: 2018-12-07
在頁面頭添加<%@ taglibprefix="s" uri="/struts-tags"%>頁面中添加相應的tags:password密碼s:checkboxCheckboxs:submit提交按鈕s:reset重設按鈕s:formForms:set設定某個值s:set name="lastName" value="%session.paramter"(從Session中擷取parameter的值)s:if
Time of Update: 2018-12-07
意圖:給定一個語言,定義它的文法表示,並定義一個解譯器,這個解譯器使用該標識來解釋語言中的句子。如果一種特定類型的問題發生的頻率足夠高,那麼就可值得將該問題的各個執行個體表述為一個簡單語言的句子,這樣就可以構建一個解譯器,該解譯器通過解釋這些句子來解決該問題。解譯器模式使用類來表達每一條文法規則,在規則右邊的符號是這些類的執行個體變數。適用性:當有一個語言需要解釋執行,並且你可將該語言中的句子表示為一個抽象文法樹,可以使用解譯器模式。而當存在以下情況時該模式效果最好l該文法的類階層變得龐大而無法