c#設計模式--委託工廠

(轉載請註明來源:cnblogs coder-fang)框架

 

1。下面是一個簡單而又典型的工廠方法:spa

public static Employee CreateEmployee(string name)
    {
        if (name.StartWith("VIP"))
        {
            return new Employee() { Name = name.Replace("VIP", "") };
        }
        return new Employee() { Name = name };
    }

以上工廠代碼的邏輯是,若是名字中有VIP字樣 ,則將VIP去掉後再建立員工。.net

這裏的變化 點就是if語句,當建立的判斷邏輯隨着需求不斷變動時,會不斷的更改工廠方法,多是修改原有的,多是增長新的。設計

但經過C#語言技術,能夠把變化點隔離在不變化點的外部,以保證工廠的穩定性,經過C#的委託將邏輯注入進來。code

   public static Employee CreateEmployee(string name,Func<string,bool> logic,Func<string,string> filter)
    {
        if (logic(name))
        {
            return new Employee() { Name = filter(name) };
        }
        return new Employee() { Name = name };
    }

 

這裏只是委託在工廠模式的應用,充分發輝委託的力量,能夠在項目中發輝更大的做用。blog

 

引用 《.net 框架設計》string

相關文章
相關標籤/搜索