第1章 代碼無錯(cuò)就是優(yōu)?——簡單工廠模式
概念
單獨(dú)的簡單工廠類矫付,通過一個(gè)接口不同的分支买优,創(chuàng)建不同的實(shí)現(xiàn)類。
例子
設(shè)計(jì)一個(gè)計(jì)算器杀赢,不能面向過程:
-
業(yè)務(wù)與邏輯的封裝
將界面與算法分開(業(yè)務(wù)與邏輯)脂崔,界面包含業(yè)務(wù)部分負(fù)責(zé)客戶交互,邏輯是算法砌左,實(shí)現(xiàn)不同的運(yùn)算。
-
緊耦合與松耦合
通過為不同的運(yùn)算符創(chuàng)建不同的類(這樣實(shí)現(xiàn)了對(duì)算法中方法的封裝屁擅,進(jìn)一步隔離了業(yè)務(wù)和實(shí)現(xiàn)邏輯)产弹。Opera做為抽象類,加法胶果、減法、乘法霎烙、除法分別繼承Opera,(這樣利用了繼承贝或,進(jìn)一步將實(shí)現(xiàn)細(xì)節(jié)封裝)
-
簡單工廠模式
OperaFactor做為工廠類,為OperaFactor提供一個(gè)運(yùn)算符參數(shù)盗忱,創(chuàng)建出相應(yīng)的Opera子類但返回的是Opera類型(采用多態(tài)羊赵,將子類的創(chuàng)建也封裝了)
實(shí)現(xiàn)
簡單工廠類實(shí)現(xiàn):
- 運(yùn)算抽象類(Operate): 所有運(yùn)算對(duì)象的父類昧捷,提供子類要實(shí)現(xiàn)的抽象接口,添加新運(yùn)算符只需要?jiǎng)?chuàng)建新類靡挥,以及修改后面的OperaFactor即可跋破。
- 具體運(yùn)算符類: 對(duì)具體運(yùn)算進(jìn)行實(shí)現(xiàn),實(shí)現(xiàn)了對(duì)具體算法的封裝毒返。
- 簡單工廠類(OperaFactor): 集中創(chuàng)建具體運(yùn)算子對(duì)象拧簸,通過OperaFactor傳遞參數(shù)來指明創(chuàng)建何種運(yùn)算,返回多態(tài)的 Operate 父類隔離了具體子類盆赤。
- 客戶端: 創(chuàng)建簡單工廠類牺六,傳入運(yùn)算符參數(shù),工廠類返回以抽象Operate多態(tài)的具體運(yùn)算符類對(duì)象兔乞。
實(shí)現(xiàn)圖如下:
使用圖:
作用
簡單工廠模式霍骄,實(shí)現(xiàn)了子類對(duì)象創(chuàng)建的封裝淡溯。
其它
另外,講解了UML類圖:繼承(實(shí)線三角箭頭)咱娶、實(shí)現(xiàn)(虛線三角箭頭)膘侮、組合(實(shí)體菱形箭尾)、聚合(空心菱形箭尾)逻锐、依賴(虛線)雕薪、關(guān)聯(lián)(實(shí)線)