我正在開發一個自然語言處理項目(在C#中),我需要通過它們的索引來引用單詞而不是字符串本身來加快速度。例如,句子"i am what i am"
應存儲爲"0 1 2 0 1"
。單身人士比傳遞同一個物體更好嗎?
在這個項目中,有很多類以這種方式存儲句子。爲了解決這個問題,我最初計劃爲它實現一個名爲Codebook
的單例類,以便在我的項目的任何地方,每當我需要將一個單詞的字符串轉換爲其索引(或通過索引獲取字符串)時,需要說的是Codebook.Instance.Convert(n)
或類似的東西。
但是,這會導致麻煩,因爲我需要有幾個Codebook
s用於不同的用途(例如,一個用於中文,一個用於英語,甚至一個用於詞性標籤標籤),所以我想到了另一種方式到它。在我的項目結構的最頂端,我創建了一個Codebook
的實例,然後我將它傳遞給所有人。這樣,幾乎每個處理句子的方法都會有Codebook
參數。由於在C#中,傳遞對象的形式是引用形式而不是其實際內容,所有Codebook
對象的外觀都指向同一個對象。
所以我的問題是,第二種方法會導致問題,如果Codebook
對象多次傳遞?我擔心,因爲在我的項目中使用索引而不是字符串本身是密集型的。我知道單身模式可以解決我的問題,但正如我所說的,我不能使用它。所以我需要知道第二種方法是否可以,比如說,有一長串的方法調用,同一個Codebook
對象應該沿着這個方向調用。
一個單身人士總是聽起來很舒服。想想你會節省的所有時間!問題是,它規避了面向對象設計的結構化方法,並且最終會讓你的頭被束縛在一起。如何做一個單身人士的圖表?它是關聯還是組合? – Gusdor