国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python之設計模式

這篇具有很好參考價值的文章主要介紹了Python之設計模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、設計模式_工廠模式實現(xiàn)

Python之設計模式,Python,設計模式

設計模式是面向對象語言特有的內容,是我們在面臨某一類問題時候固定的做法,設計模式有很多種,比較流行的是:GOF(Goup Of Four)23種設計模式。當然,我們沒有必要全部學習,學習幾個常用的即可。

對于初學者,我們學習兩個最常用的模式:工廠模式和單例模式。

工廠模式實現(xiàn)了創(chuàng)建者和調用者的分離,使用專門的工廠類將選擇實現(xiàn)類、創(chuàng)建對象進行統(tǒng)一的管理和控制。

Python之設計模式,Python,設計模式

#工廠模式
?
class CarFactory:
  def createCar(self,brand):
    if brand == "奔馳":
      return Benz()
    elif brand == "寶馬":
      return BMW()
    elif brand == '比亞迪':
      return BYD()
    else:
      return "未知品牌,無法創(chuàng)建"
?
?
class Benz:
  pass
?
?
class BMW:
  pass
?
?
class BYD:
  pass
?
factory = CarFactory()
c1 = factory.createCar("奔馳")
c2 = factory.createCar("寶馬")
print(c1)
print(c2)

?運行結果:

<__main__.Benz object at 0x021C5770>
<__main__.BMW object at 0x021C5790>

二、設計模式_單例模式實現(xiàn)

Python之設計模式,Python,設計模式

單例模式(Singleton Pattern)的核心作用是確保一個類只有一個實例,并且提供一個訪問該實例的全局訪問點。

單例模式只生成一個實例對象,減少了對系統(tǒng)資源的開銷。當一個對象的產生需要比較多的資源,如讀取配置文件、產生其他依賴對象時,可以產生一個“單例對象”,然后永久駐留內存中,從而極大的降低開銷。

??單例模式有多種實現(xiàn)的方式,我們這里推薦重寫__new__()的方法。

#單例模式
?
class MySingleton:
  __obj = None
  __init_flag = True
?
  def __new__(cls, *args, **kwargs):
    if cls.__obj == None:
      cls.__obj = object.__new__(cls)
?
    return cls.__obj
?
  def __init__(self,name):
    if MySingleton.__init_flag:
      print("init....")
      self.name = name
      MySingleton.__init_flag = False
?
a = MySingleton("aa")
print(a)
b = MySingleton("bb")
print(b)

?運算結果:

init....
<__main__.MySingleton object at 0x01E15610>
<__main__.MySingleton object at 0x01E15610>

三、工廠和單例模式結合

Python之設計模式,Python,設計模式

設計模式稱之為“模式”,就是一些固定的套路。我們很容易用到其他場景上,比如前面講的工廠模式,我們需要將工廠類定義成“單例”,只需要簡單的套用即可實現(xiàn):

#測試工廠模式和單例模式的整合使用
class CarFactory:
  __obj = None      #類屬性
  __init_flag = True
?
?
  def create_car(self,brand):
    if brand =="奔馳":
      return Benz()
    elif brand =="寶馬":
      return BMW()
    elif brand == "比亞迪":
      return BYD()
    else:
      return "未知品牌,無法創(chuàng)建"
?
?
  def __new__(cls, *args, **kwargs):
    if cls.__obj ==None:
      cls.__obj = object.__new__(cls)
?
    return cls.__obj
?
  def __init__(self):
    if CarFactory.__init_flag:
      print("init CarFactory....")
      CarFactory.__init_flag = False
?
class Benz:
  pass
?
class BMW:
  pass
?
class BYD:
  pass
?
factory = CarFactory()
c1 = factory.create_car("奔馳")
c2 = factory.create_car("比亞迪")
print(c1)
print(c2)
?
factory2 = CarFactory()
print(factory)
print(factory2)

?運算結果:文章來源地址http://www.zghlxwxcb.cn/news/detail-703536.html

init CarFactory....
<__main__.Benz object at 0x01E36E90>
<__main__.BYD object at 0x01E36C30>
<__main__.CarFactory object at 0x01E36730>
<__main__.CarFactory object at 0x01E36730>

到了這里,關于Python之設計模式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【python設計模式】3、抽象工廠模式

    設計哲學: 抽象工廠模式的哲學思想是面向接口編程(Interface Segregation Principle,ISP)。這一原則強調,客戶端不應該依賴于它不需要的接口,而應該將接口盡可能地細化,只包含客戶端所需的方法。 抽象工廠模式正是將這一原則體現(xiàn)得淋漓盡致。它定義了一組接口,用于創(chuàng)

    2023年04月08日
    瀏覽(16)
  • 93 | Python 設計模式 —— 建造者模式

    當構建復雜對象時,經常會遇到對象的創(chuàng)建過程非常復雜、包含多個步驟、或者有不同的配置選項。這時,使用建造者模式是一種很好的選擇。建造者模式是一種創(chuàng)建型設計模式,它通過將一個復雜對象的構建過程與其表示分離,使得構建過程可以創(chuàng)建不同的表示。 本教程將

    2024年02月14日
    瀏覽(13)
  • 7.python設計模式【橋結模式】

    7.python設計模式【橋結模式】

    內容:將一個事物的兩個維度分離,使其都可以獨立變化 角色: 抽象(Abstraction) 細化抽象(RefinedAbstraction) 實現(xiàn)者(Implementor) 具體實現(xiàn)者(ConcreteImplementor) UML圖 舉個例子 需求:要求繪制一個圖像,圖形和顏色相互分離,并且可以相互組合 輸出結果 紅色的長方形 綠色

    2024年02月15日
    瀏覽(11)
  • 12.python設計模式【觀察者模式】

    內容:定義對象間的一種一對多的依賴關系,當一個對象的狀態(tài)發(fā)生改變的時候,所有依賴于它的對象得到通知并被自動更新。觀者者模式又稱為“發(fā)布-訂閱”模式。比如天氣預報,氣象局分發(fā)氣象數(shù)據(jù)。 角色: 抽象主題(Subject) 具體主題(ConcreteSubject)——發(fā)布者 抽象

    2024年02月15日
    瀏覽(27)
  • python設計模式4:適配器模式

    使用適配器模式使用兩個或是多個不兼容的接口兼容。在不修改不兼容代碼的情況下使用適配器模式實現(xiàn)接口一致性。通過Adapter 類實現(xiàn)。 例子: 一個俱樂部類Club,藝術加被請到俱樂部在表演節(jié)目: organize_performance() Musician類 play()? 方法? Dancer 類主要是dance() 方法執(zhí)行?

    2024年02月06日
    瀏覽(15)
  • Python---閉包,裝飾器,設計模式之工廠模式

    Python---閉包,裝飾器,設計模式之工廠模式

    1.? 閉包定義 定義雙層嵌套函數(shù), 內層函數(shù)可以訪問外層函數(shù)的變量 將內存函數(shù)作為外層函數(shù)的返回,此內層函數(shù)就是閉包函數(shù) 2. 閉包的好處和缺點 優(yōu)點:不定義全局變量,也可以讓函數(shù)持續(xù)訪問和修改一個外部變量 優(yōu)點:閉包函數(shù)引用的外部變量,是外層函數(shù)的內部變

    2024年02月02日
    瀏覽(23)
  • Python之設計模式

    Python之設計模式

    設計模式是面向對象語言特有的內容,是我們在面臨某一類問題時候固定的做法,設計模式有很多種,比較流行的是:GOF(Goup Of Four)23種設計模式。當然,我們沒有必要全部學習,學習幾個常用的即可。 對于初學者,我們學習兩個最常用的模式:工廠模式和單例模式。 工廠

    2024年02月09日
    瀏覽(14)
  • Python設計模式詳解

    在軟件開發(fā)中,設計模式是解決特定問題的通用方法。本博客將探討Python中的設計模式,以及如何應用它們來解決常見問題。我們將重點關注兩個Gang?of?Four(GOF)提出的基本原則: 基于接口編程而不是實現(xiàn):?Duck?Typing在Python中很常見,雖然我們不顯式定義接口,但通過鴨

    2024年01月18日
    瀏覽(92)
  • Python之常用設計模式

    Python之常用設計模式

    factory.py factory_method.py abstract_factory.py builder.py singleton.py adapter.py bridge.py composite.py facade.py proxy.py chain_of_responsibility.py observer.py strategy.py template_method.py 【Python之常用設計模式-嗶哩嗶哩】 https://b23.tv/P8D78qx

    2024年02月02日
    瀏覽(11)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包