0
我有一個網頁列表,每個網頁都有關於產品的列表。在以前的系統中,我們使用if/else語句的每一頁進行分類,如下所示:用於分類東西的設計模式
if title =~ /pet/
13
elsif title =~ /therapy|SPA|massaging|salon|hotspring/
5
elsif title =~ /present|gift/
4
# and so on...
end
所以分類是通過字符串關鍵字匹配完成。由於現在我們正在制定一個新的系統,我想確保有可擴展性的空間。我以爲每個分類都有一個單獨的課程太重了。
我想也許有一種方法,每個會更好,就像有一個gift?()
和pet?()
。不過,我認爲這樣做也意味着在邏輯上硬編碼。有這種分類的設計模式嗎?
謝謝。在性能方面,數組,散列和select-case之間有一個主要區別?我也可以使用lambda進入select-case/if語句嗎? – lulalala
@lulalala:一如既往的表現取決於你真實情況的具體情況。我懷疑'case'會最快,而Array版本會比Hash稍微快一點(但是基準測試是唯一知道的方法)。你可以用'case'來使用lambda表達式,但是不會有太多的意義,因爲它無論如何都是靜態代碼。在Array/Hash情況下使用lambda表達式是有意義的,因爲您正在用解釋數據替換靜態邏輯,而lambda表達式是將小塊代碼轉換爲數據的標準方式。 –