介紹

規(guī)范模式是一種特定的軟件設(shè)計(jì)模式,通過(guò)使用布爾邏輯 (維基百科將業(yè)務(wù)規(guī)則鏈接在一起,可以重新組合業(yè)務(wù)規(guī)則。

在實(shí)際中,它主要用于 為實(shí)體或其他業(yè)務(wù)對(duì)象定義可重用的過(guò)濾器。

在本節(jié)中,我們將看到需要規(guī)格模式。本節(jié)是通用的,與ABP的實(shí)現(xiàn)無(wú)關(guān)。

假設(shè)您有一種服務(wù)方法來(lái)計(jì)算客戶的總數(shù),如下所示:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

public  class CustomerManager
{    public  int  GetCustomerCount()
    {        // TODO ... 
        return  0 ;
    }
}

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

您可能希望通過(guò)過(guò)濾器獲得客戶數(shù)量。例如,您可能會(huì)有高級(jí)客戶(其余額超過(guò)10萬(wàn)美元),或者您可能想要通過(guò) 注冊(cè)年度過(guò)濾客戶。然后,您可以創(chuàng)建其他方法,如GetPremiumCustomerCount(), GetCustomerCountRegisteredInYear(int year), GetPremiumCustomerCountRegisteredInYear(int year)等。由于您有更多的標(biāo)準(zhǔn),因此無(wú)法為每種可能性創(chuàng)建組合。

這個(gè)問(wèn)題的一個(gè)解決方案是規(guī)范模式。我們可以創(chuàng)建一個(gè)獲取參數(shù)作為過(guò)濾器的方法

網(wǎng)友評(píng)論