Time of Update: 2018-12-05
Factory Method Factory 方法模式名稱:又名 虛擬構造子(virtual Constructor)模式、多態性(Polymorphic Factory)原廠模式問題: 考慮一個應用程式架構,向使用者顯示多個文檔。存在兩個主要的抽象類別Application 和
Time of Update: 2018-12-05
2004-11-24ProtoType模式名稱:原型模式、問題: 假設要做一個圖形表示的五線譜編輯器,圖形來表示休止符、音符等,一個選擇面板來控制、選擇音樂對象,例如,在面板上選擇一個休止符,放置在五線譜上。我們為五線譜構成的音樂元素定義了抽象Graphics類,為面板定義了抽象Tool類,還為將一些圖形工具加入到五線譜而設計了GraphicsTool類。問題是,Graphics類不知道如何建立五線譜等執行個體且加入到樂譜中去。如果為每一個音樂對象類建立一個GraphicTool類,
Time of Update: 2018-12-05
結構型模型 2004-11-26Adapter模式名稱:適配器模式、封裝器wapper模式問題:假設一個圖形編輯器,操縱圖形類,例如lineShape、PolygonShape等,但是假設需要一個可以編輯和顯示文字的textShap對象,編輯器肯能無法操縱;況且系統已經提供了textView之類的操作對象,不利用也很可惜。解決:
Time of Update: 2018-12-05
Keso寫了 東拉西扯:搜尋大戰?Game Over ,大致是在cnnic發布了搜尋引擎的市場佔有率後的感慨,後來著很難追趕領先者,其實看了,覺得keso是有點“哀其不爭”的意思,google發力追趕,都沒有達到keso預想的佔有,難怪超級粉絲不滿意了。 我也是偏愛google一點,不過相對搜尋引擎的市場佔有率,我卻看的淡一些。想想當初,可是百度追趕人家呢。事物是發展的,世界上哪有永遠的勝者? 從搜尋行業本身來說,是一個技術主導的產業,但是
Time of Update: 2018-12-05
對查詢類的編寫:class TextQuery {public: TextQuery(); virtual ~TextQuery(); typedef std::vector<std::string>::size_type line_no; //起個別名要麼太長讓人看著蛋疼 void read_file(std::ifstream &is) { store_file(is); build_map(); } std::set<line_no>
Time of Update: 2018-12-05
基礎串連已經關閉: 該伺服器提交了 HTTP 協議衝突這個通常在我們使用.net
Time of Update: 2018-12-05
大凡Context,根據單詞的字面意義,我們大概都知道是關於某些進程或者線程的執行內容,通常asp.net的請求會為每一個請求準備一個執行管道,也會準備一個執行環境內容,這就是HttpContext。CS認為HttpContext的資訊並不直接,無法滿足各項功能的直接需求,為了能夠更好的處理當前請求,並與高度靈活的配置其他可定製部分協同處理執行請求,為此整合HttpContext實現了一個新的描述執行環境內容CSContext.由於需要通常Context在asp.net執行環境來說通常(不通常
Time of Update: 2018-12-05
#import "C:\Program Files\Common Files\System\ado\msado15.dll"no_namespace \rename("EOF","adoEOF")rename("BOF","adoBOF")//添加動態連結程式庫,並對結尾指示符進行更名避免與系統中的重複class ADOConn {public:BOOL ExecuteSQL(_bstr_t bstrSQL);ADOConn();virtual
Time of Update: 2018-12-05
Decorator
Time of Update: 2018-12-05
作為一個應用程式,我們有時候希望代碼的執行不是完全由web使用者的請求驅動的,希望可以在啟動web進程時候,可以定時、周期性執行某些特定工作,這類工作我們一般希望是自動調度或者系統控制下的邏輯性調度。CS實現了相關的工作,設計了一個基礎任務調度的架構,可以讓我們達到在此架構下執行非Web使用者請求驅動的任務執行。任務的啟動架構通常是在整個CS的啟動時候,也就是通常我們說的global.asax中的:protected void Application_Start(Object
Time of Update: 2018-12-05
狗狗出了拼音IME,搜狗不幹了,開始狗咬狗。Google應當不會告我有正宗的“Google”中文名字不用要暱稱“狗狗”,搜狗就不知道了。搜狗推出IME的時候,我是很高興的,雖然我本能偏見覺得搜狐應當有陰謀,生怕被搜狗外掛程式插了,惹出麻煩也就沒使用,但是覺得搜狗--這個搜狐的兒子還是有點創意,正面戰場難以撼動百度,就側面出擊,從IME這個中國特色應用入手,佔領使用者案頭,很有新意,也鬥爭的有創意,在抄襲跟風成習慣乃至引以為榮耀的年代,還是值得表揚的。但是,搜狗畢竟是搜狐的兒子,重商弱技術,有了
Time of Update: 2018-12-05
CSModule實現的事件監聽體系CS裡面的CSModule是個什麼東東?我們知道,系統大了,必然是比較複雜,系統內部很多事件需要被各個相互聯絡的模組相互截取,相互瞭解。我們要針對CS系統做出開發,實際上我們很大程度上是針對CS內部流程執行過程中的大量事件進行面向事件的處理代碼編寫。譬如,我們要做到系統發生了例外,我們可以敏感接獲到,並且需要在特定的“安全區域”進行處理例外;再比如,我們有時候會針對某個文章進行監控,如果發生了新帖需要被通知,如果寫入程式碼進入當然可以,但是假若需要接獲新帖通
Time of Update: 2018-12-05
很多人,其實也包括我在一段時間,在質疑垂直搜尋引擎的存在意義:都有了那麼好的通用搜尋引擎(如google baidu),還需要所謂垂直搜尋引擎幹嗎? 其實,這裡面有誤解。一、
Time of Update: 2018-12-05
該來的始終會來。當微軟忍無可忍,手握重金卻無法讓人在互連網時代看重他,他憤怒了,揮舞金元大棒,主動出擊。收購雅虎不成,轉而自己推出Bing.com,在佔有率上小有斬獲,人們有理由相信,微軟有奪回互連網主導權的決心。然而,google不是吃素的,你進攻我,我主動攻擊你的下盤,微軟的生命線—OS。之所以仍然看重微軟,人們恐怕還是看在案頭作業系統上,這點,微軟是天然優勢,也是過去30多年來微軟的生命線。一部IT史,幾乎就是微軟的案頭作業系統發家史,wintel聯盟爭奪人們的眼球和錢袋,刺激著IT軟硬
Time of Update: 2018-12-05
一、CommunityServer背景Web2.0大潮,帶動了web技術擺脫了單純的論壇、CMS的開發,轉而進入社區應用開發。但是要知道,連基礎協議都是http,那麼也別指望有啥新應用技術一鳴驚人,大多數還是各類成熟技術的結合、融合。Myspace、Flicker等應用的脫穎而出,導致了市場要求技術開發多注重社區產品、相簿、部落格等典型web2.0應用的開發。在這背景下,CommunityServer(簡稱cs)項目誕生了,Telligent Systems
Time of Update: 2018-12-05
調試前先加入w2_32.lib,這個屬於用戶端程式。#include <WINSOCK2.H>#include <stdio.h>void main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err=WSAStartup(wVersionRequested,&wsaData); if
Time of Update: 2018-12-05
提取23種模式的基本要素後,大致明白了模式以及各種模式是如何產生、實現、協調、發揮效果的。但是並沒有深入研究模式極其變化,以及這些變化對我們解決實際問題的影響。看完後,幾點想法:1、模式是系統設計規律的總結。2、模式能夠解決大多數問題,但是不可能解決遇到的所有問題。這有時跟具體的問題有關,有時跟設計者自身能力有關,有時是由於系統的動態變化導致原有模式不再最佳化解決問題。3、每一種模式不是萬能的,有利有弊,應用一種模式一般會“有得有失”。4、我們其實已經接觸過很多模式,但是我們沒有意識到。中國人不
Time of Update: 2018-12-05
Provider實現 Provider 是重配置輕編程的第二個體現。我們都知道分層設計很重要,也知道在保持結構穩定的基礎上,應當做到最大的靈活性,所謂具體環境的無關性。比如我們設計的時候可以通過分析,將一些功能進行抽象,並獨立出來。比如,我們需要做到資料庫無關,我們需要將全部資料訪問設計到資料庫部分進行獨立設計,並通過分析提煉出相應的功能抽象,然後可以根據實際的資料庫,設計相應的面向特定資料庫的資料訪問類,以便做到最終可以靈活通過設定檔,來切換不同的資料驅動。Provider 的定義在
Time of Update: 2018-12-05
Builder 產生器模式名稱:也叫建造模式、產生器模式問題: 通常產品是由多個零件組成的,不同的產品,組成零件不一樣,組裝方式也不一樣。假設一個產品,由2部分組成(至於如何組成,可能隨著技術發展,會不一樣),另外的產品,有3個部分組成,我們需要建立這些產品,如何做到完美實現呢?解決:這樣,我們作如下設計: 設計一個抽象的建造者Builder介面,規範產品的組成部分建造:定義buildPart1()和buildPart2()、buildPart3方法。
Time of Update: 2018-12-05
本次介紹對於初學者簡單明了。 1. 建立一個MFC工程, 取名MyTab, 選擇Dialog based, 然後Finish.2. 刪除對話方塊上預設添加的三個控制項. 添加Tab Control控制項並在Property屬性中設定ID為IDC_TABTEST 在More Styles裡勾上Bottom. 調速尺寸使其布滿整個對話方塊, 我這邊Tab Control的尺寸最後為164X203. 在ClassWizard為其添加變數, 變數名為m_tab. 類型為CTabCtrl.3.