摘要:解決措施是將計(jì)算的代碼,與顯示的代碼分離開,即多帶帶封裝好計(jì)算功能與顯示功能。那么計(jì)算功能在該條件下是可以復(fù)用的。總結(jié)下沒想到一個(gè)這么小的功能就可以把抽象封裝繼承多態(tài)體現(xiàn)的如此淋漓盡致,做個(gè)編程的有心人,避免做代碼的搬運(yùn)工。
簡單工廠模式:
案例:請用C++、Java、C#或vb.net任意一種面向?qū)ο笳Z言實(shí)現(xiàn)一個(gè)計(jì)算機(jī)控制臺程序,要求輸入兩個(gè)數(shù)和運(yùn)算符號得到結(jié)果
case1:變量命名規(guī)范
case2:使用switch分支判斷輸入的運(yùn)算符(取代if/else)
case3:新要求,如何易維護(hù),易擴(kuò)展,又容易復(fù)用?答曰:面向?qū)ο?/p>
3.1 易維護(hù):要改功能,如將控制臺的計(jì)算器修改為windows的計(jì)算器如何實(shí)現(xiàn)? 3.2 易復(fù)用:代碼的邏輯可能并不僅是符合當(dāng)前的功能,未來新的功能可能可以復(fù)用這個(gè)代碼邏輯(功能) 3.3 易擴(kuò)展:就目前案例,假如僅滿足加減法,易擴(kuò)展代表的就是在不影響加,減法功能的前提下(不需要重新編譯等),添加乘除,開平方位移運(yùn)算等
case4:首先想到的做法會是將控制臺輸入,運(yùn)算,結(jié)果展示都寫到一個(gè)方法(類)里,假如需要在不同的端做展示或計(jì)算時(shí)得復(fù)制代碼,修改部分邏輯,但這樣代碼冗余,重復(fù)代碼就非常多了。解決措施是將計(jì)算的代碼,與顯示的代碼分離開,即多帶帶封裝好計(jì)算功能與顯示功能。那么計(jì)算功能在該條件下是可以復(fù)用的。
case5:那么如果需要新增個(gè)運(yùn)算方式,此時(shí)封裝的計(jì)算功能的類需要重新編譯,添加一個(gè)switch分支,為此,可以抽象出一個(gè)共通的父類,如算法類,各個(gè)運(yùn)算都需要繼承這個(gè)算法類,該算法類提供了一個(gè)獲取計(jì)算結(jié)果值的方法,各子類(加減乘除運(yùn)算類)僅需重寫該方法,如此即便新增再多的新運(yùn)算對之前的功能也沒有影響
case6:本章重點(diǎn)來了,有那么多的子運(yùn)算類了,如何管理好?通過工廠模式,在工廠類中的靜態(tài)方法接收運(yùn)算符參數(shù)再生產(chǎn)子運(yùn)算類對象(switch 根據(jù)運(yùn)算符 條件判斷 生產(chǎn)那個(gè)子類對象 ),然后用父類對象去接收(多態(tài)),再把要計(jì)算的值賦給父類的成員變量,最后調(diào)用獲取計(jì)算結(jié)果的方法獲取到結(jié)果。
總結(jié)下:沒想到一個(gè)這么小的功能就可以把抽象、封裝、繼承、多態(tài)體現(xiàn)的如此淋漓盡致,做個(gè)編程的有心人,避免做代碼的搬運(yùn)工。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71391.html
摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類都具有同一抽象父類。工廠方法模式總結(jié)工廠方法模式是簡單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式 1.簡單工廠模式 簡單工廠模式:又稱為靜態(tài)工廠方法...
摘要:不過怎么來說工廠方法模式是簡單工廠模式的升級版。其次,工廠模式是一種典型的解耦模式,迪米特法則在工廠模式中表現(xiàn)的尤為明顯。 工廠模式想必大家在開發(fā)過程中會經(jīng)常用到,顧名思義其就是作為一個(gè)工廠用來生產(chǎn)產(chǎn)品的,下面來簡單介紹幾種常見的工廠模式。 0x01 簡單工廠模式 1、類圖結(jié)構(gòu)showImg(/img/bVFf1t?w=531&h=278); 2、角色分類 工廠類:其內(nèi)部具有一點(diǎn)的判...
摘要:簡單工廠,工廠模式和抽象工廠。不要認(rèn)為簡單工廠是用就覺得一無是處,也不要覺得抽象工廠比較高大上就到處套。 工廠模式,實(shí)際上也會根據(jù)業(yè)務(wù)情景不同會有不同的實(shí)現(xiàn)方式。一般分為3種。簡單工廠,工廠模式和抽象工廠。顧名思義,這三種從簡單到抽象,名稱越來越高大上,實(shí)現(xiàn)方式肯定是越來越復(fù)雜 結(jié)論1:三種工廠的實(shí)現(xiàn)越來越復(fù)雜 簡單工廠 public class Factory { // 定義...
摘要:二簡單工廠模式組成工廠類工廠模式的核心,通過調(diào)用它來實(shí)現(xiàn)其他類的功能。三工廠方法模式利用工廠方法模式可以有效解決簡單工廠模式破壞開閉原則的問題。 一、概念 1、工廠模式分為三類:(1)簡單工廠模式:一個(gè)工廠創(chuàng)建所有產(chǎn)品(2)工廠方法模式:一個(gè)工廠方法創(chuàng)建一個(gè)產(chǎn)品(3)抽象工廠模式:一個(gè)工廠方法創(chuàng)建一類產(chǎn)品 2、創(chuàng)建型模式這種模式是指將實(shí)例的創(chuàng)建和使用分離開來,隱藏類實(shí)例的創(chuàng)建細(xì)節(jié),外界...
摘要:需要說明的是在設(shè)計(jì)模式一書中將工廠模式分為兩類工廠方法模式與抽象工廠模式,將簡單工廠模式看為工廠方法模式的一種特例,兩者歸為一類。工廠模式的作用工廠模式的作用封裝變化創(chuàng)建邏輯有可能變化,封裝成工廠類之后,創(chuàng)建邏輯的變更對調(diào)用者透明。1、什么是工廠模式Define an interface for creating an object,but let subclasses decide whi...
摘要:我認(rèn)為按書上的順序比較好理解因?yàn)楹唵戊o態(tài)工廠模式是在工廠方法模式上縮減,抽象工廠模式是在工廠方法模式上再增強(qiáng)。所以我就先講工廠方法模式了。抽象工廠模式抽象工廠模式就比較復(fù)雜了,我們一般的應(yīng)用都寫不到。 前言 只有光頭才能變強(qiáng) 回顧前面: 給女朋友講解什么是代理模式 包裝模式就是這么簡單啦 單例模式你會幾種寫法? 昨天寫了單例模式了,今天是時(shí)候?qū)懝S模式啦~ 工廠模式我個(gè)人認(rèn)為其實(shí)比...
閱讀 2365·2023-04-25 20:07
閱讀 3303·2021-11-25 09:43
閱讀 3662·2021-11-16 11:44
閱讀 2529·2021-11-08 13:14
閱讀 3178·2021-10-19 11:46
閱讀 895·2021-09-28 09:36
閱讀 2975·2021-09-22 10:56
閱讀 2374·2021-09-10 10:51