工廠模式,設計模式中普遍分成了三種,簡單工廠、工廠方法和抽象工廠模式。
看到乙個名字,我首先會去思考它為什麼被人們起為這樣的名字,對於設計模式,想要明白到底是怎麼回事,當然也要從名字開始。
簡單工廠,是針對同樣具有某種屬性和動作的物件進行抽象和封裝的開始,簡單工廠當然就是量少的工廠,我們完全可以專案的生存期中能夠考慮到的為數不多的工廠整合到乙個工廠類中,每乙個工廠中,我們建造出特定的產品,這些產品都有共同的屬性和動作,我們事先將他們寫進乙個抽象產品類中,以便客戶端隨時進行例項化其需要的產品,並且在日後的維護公升級過程中,可以直接改動相應的產品類,而不影響到其他產品。
工廠方法,是簡單工廠不再簡單的時候,我們需要考慮的設計模式。在這裡,我們不用將所有產品類考慮到我們的**設計當中,再呼叫核心**的客戶端中,完全可以通過對工廠的抽象,隨時新增新的工廠類來生產特定的新產品,輕輕鬆鬆對專案進行擴充套件。每乙個產品類都可以對自身進行維護,修改自身的同時不會影響到其他產品的內容。讓工廠依賴於抽象產品類,這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。
抽象工廠,是針對一系列產品進行改動,比如在我們修改windows系統主題的時候,當切換成藍色格調,於是整個介面趨向於藍色進行變化,包括按鈕,文字,下拉框等等。
變動的不止是特定的產品,而是乙個工廠建立了一系列相關的產品,這是對工廠方法的進一步擴充套件,是乙個工廠建立特定產品族的內容。
在我們的管理系統中,有客服、資源合作部和技術部,在計算各部門薪水的時候可以與工廠模式進行結合,如下:
簡單工廠:
1.抽象部門類department定義公共的介面和字段
2.具體部門類計算各自的薪水並在控制台顯示。
3.工廠類中,通過switch判斷例項化相應的部門類,並返回此例項。
ps:可以通過反射機制通過類名例項化具體的部門類。
工廠方法:
1.與簡單工廠不相同的地方就是對工廠類進行了抽象,工廠類依賴抽象部門類,而不涉及到具體部門,針對抽象進行程式設計,我們只是呼叫了各個部門公共的內容。
抽象工廠:
在業務進行中,我們需要每天都有相應的客服部門、資源合作部門在崗對客戶進行服務,此時週末和節日放假來加班的客服、資源合作部人員的工資是不一樣的,於是我們可以利用抽象工廠生產不同組的產業鏈進行薪水的計算:
1.從具體部門類中派生出週末組和節日組產業鏈,包括客服、資源合作部,每個產業鏈中都必須包括這兩種角色。
2.抽象出工廠類,定義統一建立相應產品的介面。
3.派生出具體工廠類,生成不同產業鏈的產品族,即週末租和節日租的客服和資源合作部人員。
**如下:
usingsystem;
using
system.collections.generic;
using
system.text;
namespace
designpattern
class
serviced : department
}class
cooperatived : department
}class
teckd : department
}//////
簡單工廠
/////
class factory
// //}
//}//////
工廠方法
/////
abstract class factory
//
//class servicef:factory
// //}
//class cooperativef : factory
// //}
//class teckf : factory
// //}
//////
抽象工廠
///class
servicegroup1 : serviced
}class
servicegroup2 : serviced
}class
cooperativegroup1 : cooperatived
}class
cooperativegroup2 : cooperatived
}abstract
class
factory
class
weekendfactory : factory
public
override
department createcooperativedepartment()
}class
festivalfactory : factory
public
override
department createcooperativedepartment()
}class
createewchain
public
void
run()
}class
program
}}
開始學習設計模式,有很多不妥和錯誤的地方,還請大家多多糾正。。。。。多謝了。
初涉設計模式 簡單工廠模式
下面我談談簡單工廠模式 有的時候,我們不希望客戶自己new以個產品,而是希望客戶傳入乙個產品的名字來得到他們想要的產品,下面用乙個示意程式來說明 inte ce car class benz implements car public void stop class ford implements ...
初涉裝飾器模式
quad 裝飾器模式是gof23種設計模式中較為常用的一種模式。它可以實現對原有類的包裝和裝飾,使新的類具有更強的功能。quad 我這裡有飲料咖啡,我們可以通過加入牛奶或蔗糖,實現原有飲料口味的擴充套件和 的變化。這就是一種 裝飾器模式 我們在未來給普通人加裝 外骨骼 裝飾,讓普通人具有力扛千斤的能...
工廠模式 簡單工廠模式 初涉
定義 稱為靜態工廠方法 static factory method 模式,它屬於類建立型模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項 優勢物件的建立和物件的使用實現了分離,客服端不需要了解實現細節,降低耦合度 當你需要什麼,只需要傳入乙個正確的引數,就可以獲取你所需要的物件,而無須知道...