介紹
規(guī)范模式是一種特定的軟件設(shè)計模式,通過使用布爾邏輯 (維基百科)將業(yè)務(wù)規(guī)則鏈接在一起,可以重新組合業(yè)務(wù)規(guī)則。
在實際中,它主要用于 為實體或其他業(yè)務(wù)對象定義可重用的過濾器。
例
在本節(jié)中,我們將看到需要規(guī)格模式。本節(jié)是通用的,與ABP的實現(xiàn)無關(guān)。
假設(shè)您有一種服務(wù)方法來計算客戶的總數(shù),如下所示:
public class CustomerManager { public int GetCustomerCount() { // TODO ... return 0 ; } }
您可能希望通過過濾器獲得客戶數(shù)量。例如,您可能會有高級客戶(其余額超過10萬美元),或者您可能想要通過 注冊年度過濾客戶。然后,您可以創(chuàng)建其他方法,如GetPremiumCustomerCount(), GetCustomerCountRegisteredInYear(int year), GetPremiumCustomerCountRegisteredInYear(int year)等。由于您有更多的標(biāo)準(zhǔn),因此無法為每種可能性創(chuàng)建組合。
這個問題的一個解決方案是規(guī)范模式。我們可以創(chuàng)建一個獲取參數(shù)作為過濾器的方法:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式