Time of Update: 2018-12-03
可重用軟體資產類型1 粒度劃分 一個資產的粒度描述了該資產能夠解決多少個問題或提供多少個解決方案。最簡單的資產提供單個解決方案。隨著粒度的增加,資產可以解決的問題也會隨之增加。 通常粒度的增長會加大資產的容量和複雜性。2 可變性劃分 資產的可變性和可視化是資產的重要屬性。一個極端的資產可能是不可變的,也就是說它不能被任何方法改變。例如組件二進位檔案。這樣的組件成為黑盒資產,因為它們的內部實現是不可見不能修改的。
Time of Update: 2018-12-03
在COM中實現非同步是非常複雜但又非常有用的。Process如下:1. 列集要線上程裡使用的介面。2. Create一個線程。3. 線上程裡Release列集。4. 調用介面的方法。標頭檔如下:class ATL_NO_VTABLE CAsync{protected: CAsync(); virtual ~CAsync();private: unsigned int RunThread(); static unsigned int __stdcall ThreadFunction(void
Time of Update: 2018-12-03
引入:程式控制流程與工作流程一定要分開,本文重點介紹程式控制流程。平時,在工作流程時一定要分清楚,知識的範疇。這樣才能學得清晰、有的放矢。 程式必須能操縱自己的世界,在執行過程中作出判斷與選擇。在 Java 中,我們利用操作符操縱對象和資料,並用執行控制語句作出選擇。首先要掌握如下幾點基礎知識這樣才知道相應的程式控制流程:一、運算子的優先順序別“+”、“-”、“*”、“/”、“||”、“&&”、“!”、?: 、“=”、 “==”、“i++”、"++i" i-- ,
Time of Update: 2018-12-03
為建立的對象定義一個抽象類別,雖然該抽象類別負責建立對象,但由它的實作類別決定哪個類需要執行個體化。即不在由單個工廠類決定應該執行個體化哪個子類。工廠類會將這決定延遲到每個子類中完成。Product(Page)定義一個由Factory 方法執行個體化的對象介面。 ConcreteProduct(SkillsPage, EducationPage, ExperiencePage)Product介面的實作類別 Creator(Document)聲明Factory
Time of Update: 2018-12-03
Java 的基本理念是“結構不佳的代碼將不能運行”。
Time of Update: 2018-12-03
在物件導向設計中,要考慮的一個基本問題是“如何將變動的事物與保持不變的事物相互隔離”。 這對程式庫(library)而言尤為重要。該程式庫的使用者(用戶端程式員,client programmer)必須能夠信賴他所使用的那部分程式庫,並且能夠知道如果程式庫出現了新版本,他們並不需要改寫代碼。從另一個方面來說,程式庫的開發人員必須有許可權進行修改和改進,並確保客戶代碼不會因為這些改動而受到影響。 這一目標可以通過達成協定來加以實現。例如,程式庫開發人員必須同意在改動程式庫中的class
Time of Update: 2018-12-03
1. 編譯原理與編譯器的公用網站:http://www.compilers.net/index.htm2 Intel 80386程式員手冊:http://www7.informatik.uni-erlangen.de/~msdoerfe/embedded/386html/toc.htm3 ANother Tool for Language Recognition(ANTLR):http://www.antlr.org/4 Bytecode Outline plugin for
Time of Update: 2018-12-03
一、目的為了使代碼與文檔更好的結合,更好地管理代碼二、文法所有 javadoc命令都只能始於“/**”注釋,和一般注釋一樣,結束於 “*/”。 使用 javadoc的方式主要有兩種:嵌入 HTML,或使用“文檔標籤(doc tag)”。所謂“文檔標籤”是一些以“@”字元開頭的命令,且該“@”字元要置於注釋行的最前面(即忽略前置 “*”之後的最前面)。而“行內文檔標籤(inline doc tag)”則可以出現在 javadoc
Time of Update: 2018-12-03
1 概述面向服務的體系架構(Service Oriented Architecture, SOA)就是在分布式的環境中,將各種功能都以服務的形式提供給終端使用者或者其他服務。如今,企業級應用的開發都採用面向服務的體系架構來滿足靈活多變,可重用性高的需求。2 面向服務的體系架構 -
Time of Update: 2018-12-03
存取權限的控制常被視作是“具體實現的隱藏(implementation hiding)”。把資料和方法封裝進類中,與具體實現的隱藏結合到一起,常被稱作是“封裝(encapsulation)”
Time of Update: 2018-12-03
使用設計模式的三個最重要的要素是:知道在何處尋找設計模式 知道如何將設計模式應用於軟體工作 如何識別出現在別人的軟體中的設計模式
Time of Update: 2018-12-03
16 開源搜尋引擎開發包:Apache Lecene http://lucene.apache.org/java/docs/index.html17 文件範本引擎:Apache Velocity http://jakarta.apache.org/velocity/index.html18 彙編編譯器:nasm http://nasm.sourceforge.net/19 網路底層開發包:libnids libnet libcap snort20 基於Java的語義分析器: JavaCC
Time of Update: 2018-12-03
程式員都瞭解初始化的重要性,但常常會忘記同樣重要的清除工作。畢竟,誰需要清除一個int 呢?但在使用程式庫時,把一個對象用完後就“棄之不顧”的做法並非總是安全的。當然,Java 有記憶體回收行程來回收無用對象佔據的記憶體資源。但也有特殊情況:假定你的對象(並非使用 new)獲得了一塊“特殊”的記憶體地區,由於記憶體回收行程只知道釋放那些經由 new分配的記憶體,所以它不知道該如何釋放該對象的這塊 “特殊”記憶體。為了應對這種情況,Java 允許你在類中定義一個名為 finalize(
Time of Update: 2018-12-03
典型的情況是,內部類繼承自某個類或實現某個介面,內部類的代碼操作建立其的外圍類的對象。所以你可以認為內部類提供了某種進入其外圍類的視窗。 內部類必須要回答一個問題是:如果我只是需要一個對介面的引用,為什麼我不通過外圍類實現那個介面呢?答案是:“如果這能滿足你的需求,那麼你就應該這樣做。”那麼內部類實現一個介面與外圍類實現這個介面有什麼區別呢?答案是你不是總能享用到介面帶來的方便,有時你需要與介面的實現進行互動,所以使用內部類最迷人的原因是:
Time of Update: 2018-12-03
一種用於現有原始碼組件整合方法 1.介紹 由於組件的概念沒有模式化,以及現有技術種類的多樣化,組件的形式也是多樣的。大多數項目在開發過程中所考慮的組件劃分方式和方法都不相同,這樣導致現有項目中的組件很難重用到其它項目中。因此重組現有組件,把現有組件原始碼重新分割或組合為新的組件的需求也越來越多。本文在原始碼層級上根據原始碼之間的調用關係,自訂了組件的劃分粒度和組件的整合方法。但在此聲明本文的組件整合方法不具有唯一性和最優性。2.概念 組件:提供可重用的功能的類庫或函數庫;組件粒度:組件的原始碼檔
Time of Update: 2018-12-03
我修改了lucene的demo包的IndexHTML類,使其可以被其他Java類調用。import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.IndexWriter;import org.apache.
Time of Update: 2018-12-03
關於Tomcat中資料來源的配置,不同的版本方法略有不同,如果不注意這些差別,就會使得Web應用在不同環境中布署出現問題。Tomcat 5的資料來源配置跟Tomcat 5.5的資料來源配置有很多的差別,Tomcat 6的資料來源配置跟Tomcat
Time of Update: 2018-12-03
你應該在下列情況下使用異常: 1. 在恰當的層級處理問題。(在你知道該如何處理的情況下才捕獲異常)。 2. 解決問題並且重新調用產生異常的方法。 3. 進行少許修補,然後繞過異常發生的地方繼續執行。 4. 用別的資料進行計算,以代替方法返回的期望值。 5. 把當前運行環境下能做的事情盡量作完,然後把相同的異常重拋(rethrow)到更高層。 6. 把當前運行環境下能做的事情盡量作完,然後把不同的異常拋(throw)到更高層。 7. 終止程式。 8.
Time of Update: 2018-12-03
以CSkinEdit( public CEdit )為例:設定Edit的屬性:Multiline, 無Border1.映射訊息: ON_WM_CTLCOLOR_REFLECT()HBRUSH CSkinEdit::CtlColor(CDC* pDC, UINT nCtlColor) { // TODO: Change any attributes of the DC here CBitmap bmp; bmp.LoadBitmap( IDB_BITMAP1 ); m_Brush.Detach(
Time of Update: 2018-12-03
delphi安裝控制項的方法2007-11-04 13:59基本安裝 1、對於單個控制項,Componet-->install component..-->PAS或DCU檔案-->install;2、對於帶*.dpk檔案的控制項包,File-->Open(下拉式清單方塊中選*.dpk)-->install即可;3、對於帶*.bpl檔案的控制項包,Install