最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python設(shè)計(jì)模式之工廠模式簡(jiǎn)單示例

 更新時(shí)間:2018年01月09日 09:42:19   作者:李自泰  
這篇文章主要介紹了Python設(shè)計(jì)模式之工廠模式,簡(jiǎn)單說(shuō)明了工廠模式的原理,并結(jié)合實(shí)例形式給出了Python實(shí)現(xiàn)工廠模式的具體操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python設(shè)計(jì)模式之工廠模式。分享給大家供大家參考,具體如下:

工廠模式是一個(gè)在軟件開(kāi)發(fā)中用來(lái)創(chuàng)建對(duì)象的設(shè)計(jì)模式。

工廠模式包涵一個(gè)超類(lèi)。這個(gè)超類(lèi)提供一個(gè)抽象化的接口來(lái)創(chuàng)建一個(gè)特定類(lèi)型的對(duì)象,而不是決定哪個(gè)對(duì)象可以被創(chuàng)建。

為了實(shí)現(xiàn)此方法,需要?jiǎng)?chuàng)建一個(gè)工廠類(lèi)創(chuàng)建并返回。

當(dāng)程序運(yùn)行輸入一個(gè)“類(lèi)型”的時(shí)候,需要?jiǎng)?chuàng)建于此相應(yīng)的對(duì)象。這就用到了工廠模式。在如此情形中,實(shí)現(xiàn)代碼基于工廠模式,可以達(dá)到可擴(kuò)展,可維護(hù)的代碼。當(dāng)增加一個(gè)新的類(lèi)型,不在需要修改已存在的類(lèi),只增加能夠產(chǎn)生新類(lèi)型的子類(lèi)。

簡(jiǎn)短的說(shuō),當(dāng)以下情形可以使用工廠模式:

1.不知道用戶(hù)想要?jiǎng)?chuàng)建什么樣的對(duì)象
2.當(dāng)你想要?jiǎng)?chuàng)建一個(gè)可擴(kuò)展的關(guān)聯(lián)在創(chuàng)建類(lèi)與支持創(chuàng)建對(duì)象的類(lèi)之間。

一個(gè)例子更能很好的理解以上的內(nèi)容:

① 我們有一個(gè)基類(lèi)Person ,包涵獲取名字,性別的方法 。有兩個(gè)子類(lèi)male 和female,可以打招呼。還有一個(gè)工廠類(lèi)。
② 工廠類(lèi)有一個(gè)方法名getPerson有兩個(gè)輸入?yún)?shù),名字和性別。
③ 用戶(hù)使用工廠類(lèi),通過(guò)調(diào)用getPerson方法。

在程序運(yùn)行期間,用戶(hù)傳遞性別給工廠,工廠創(chuàng)建一個(gè)與性別有關(guān)的對(duì)象。因此工廠類(lèi)在運(yùn)行期,決定了哪個(gè)對(duì)象應(yīng)該被創(chuàng)建。

class Person:
  def __init__(self):
    self.name = None
    self.gender = None
  def getName(self):
    return self.name
  def getGender(self):
    return self.gender
class Male(Person):
  def __init__(self, name):
    print "Hello Mr." + name
class Female(Person):
  def __init__(self, name):
    print "Hello Miss." + name
class Factory:
  def getPerson(self, name, gender):
    if gender == 'M':
      return Male(name)
    if gender == 'F':
      return Female(name)
if __name__ == '__main__':
  factory = Factory()
  person = factory.getPerson("Chetan", "M")

運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python中return的返回和執(zhí)行實(shí)例

    python中return的返回和執(zhí)行實(shí)例

    今天小編就為大家分享一篇python中return的返回和執(zhí)行實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python梯度下降算法的實(shí)現(xiàn)

    python梯度下降算法的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)梯度下降算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • python程序的打包分發(fā)示例詳解

    python程序的打包分發(fā)示例詳解

    這篇文章主要為大家介紹了python程序的打包分發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之算法分析詳解

    Python數(shù)據(jù)結(jié)構(gòu)與算法之算法分析詳解

    算法分析的主要目標(biāo)是從運(yùn)行時(shí)間和內(nèi)存空間消耗等方面比較算法。本文將為大家詳細(xì)介紹Python數(shù)據(jù)結(jié)構(gòu)與算法中的算法分析,需要的可以參考一下
    2021-12-12
  • Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例

    Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例

    這篇文章主要介紹了Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作,結(jié)合實(shí)例形式分析了Python使用with關(guān)鍵字及上下文管理器、contextmanager進(jìn)行文件打開(kāi)、讀寫(xiě)、關(guān)閉等操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • 聊聊python中令人迷惑的duplicated和drop_duplicates()用法

    聊聊python中令人迷惑的duplicated和drop_duplicates()用法

    這篇文章主要介紹了聊聊python中令人迷惑的duplicated和drop_duplicates()用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python內(nèi)置數(shù)據(jù)類(lèi)型list各方法的性能測(cè)試過(guò)程解析

    Python內(nèi)置數(shù)據(jù)類(lèi)型list各方法的性能測(cè)試過(guò)程解析

    這篇文章主要介紹了Python內(nèi)置數(shù)據(jù)類(lèi)型list各方法的性能測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 基于PyQt5制作一個(gè)截圖翻譯工具

    基于PyQt5制作一個(gè)截圖翻譯工具

    這篇文章主要為大家介紹了如何利用PyQt5制作一個(gè)簡(jiǎn)單的截圖翻譯工具,具有截圖功能、翻譯功能和文字識(shí)別OCR,需要的可以參考一下
    2022-05-05
  • Python筆記之代理模式

    Python筆記之代理模式

    這篇文章主要為大家詳細(xì)介紹了Python筆記之代理模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)

    基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)

    這篇文章主要介紹了基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04

最新評(píng)論

桃源县| 平潭县| 西昌市| 商都县| 江源县| 荥经县| 彰化市| 靖安县| 宁陵县| 浦县| 简阳市| 寿阳县| 洛南县| 灵川县| 武陟县| 郁南县| 郧西县| 宁明县| 华容县| 拉孜县| 江源县| 麻城市| 信阳市| 宜阳县| 绥中县| 济南市| 伊川县| 息烽县| 咸阳市| 图片| 景宁| 武胜县| 和平区| 栾城县| 林州市| 永和县| 思南县| 婺源县| 黄大仙区| 淮北市| 伊宁县|