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

Python設(shè)計模式之工廠方法模式實例詳解

 更新時間:2019年01月18日 09:07:58   作者:Andy冉明  
這篇文章主要介紹了Python設(shè)計模式之工廠方法模式,結(jié)合實例形式較為詳細(xì)的分析了工廠方法模式的概念、原理、用法及相關(guān)操作技巧,需要的朋友可以參考下

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

工廠方法模式(Factory Method Pattern):定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延時到其子類.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設(shè)計模式
設(shè)計模式——工廠方法模式
工廠方法模式(Factory Method Pattern):定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延時到其子類.
工廠方法模式克服了簡單工廠模式違背開放-封閉原則的缺點,又保持了封裝對象創(chuàng)建過程的優(yōu)點
場景:雷鋒工廠,不關(guān)心執(zhí)行者,只關(guān)心執(zhí)行結(jié)果
"""
class LeiFeng(object):
  def Sweep(self):
    print "掃地"
  def Wash(self):
    print "洗衣"
  def BuyRice(self):
    print "買米"
class IFactory(LeiFeng):
  def CreateLeiFeng(self):
    pass
#大學(xué)生
class Undergraduate(LeiFeng):
  pass
#新增社區(qū)服務(wù)者
class Volunteer(LeiFeng):
  pass
# 學(xué)習(xí)雷鋒的大學(xué)生工廠
class UndergraduateFactory(IFactory):
  def CreateLeiFeng(self):
    return Undergraduate()
#新增一個社區(qū)服務(wù)者的工廠e
class VolunteerFactory(IFactory):
  def CreateLeiFeng(self):
    return Volunteer()
if __name__ == "__main__":
  student = UndergraduateFactory()
  volunteer = VolunteerFactory()
  student.BuyRice()
  student.Sweep()
  volunteer.Wash()

運行結(jié)果:

買米
掃地
洗衣

上面類的設(shè)計如下圖:

創(chuàng)建一個抽象工廠類CreateLeiFeng和一個抽象對象類LeiFeng,當(dāng)創(chuàng)建具體leifeng對象-Undergradiate去dosomething時,使用繼承抽象工廠的UndergraduateFactory工廠類,該類返回一個Undergradiate實例,如果還要去做另一個dosomething時,再創(chuàng)建一個VolunteerFactory工廠方法創(chuàng)建創(chuàng)建一個Volunteer實例就可以了

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

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

相關(guān)文章

  • Python線程池的實現(xiàn)淺析

    Python線程池的實現(xiàn)淺析

    當(dāng)有多個?IO?密集型的任務(wù)要被處理時,我們自然而然會想到多線程。而線程池的實現(xiàn)也很簡單,因為?Python?提供了一個標(biāo)準(zhǔn)庫?concurrent.futures,已經(jīng)內(nèi)置了對線程池的支持。所以本篇文章,我們就來詳細(xì)介紹一下該模塊的用法
    2022-08-08
  • python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)

    python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)

    使用Python腳本實現(xiàn)AAC格式轉(zhuǎn)MP3格式的方法介紹,需要用戶輸入AAC文件所在目錄路徑和MP3輸出目錄路徑,通過調(diào)用FFmpeg工具實現(xiàn)格式轉(zhuǎn)換,該腳本簡單易懂,適合需要批量處理音頻文件的用戶,使用前需確保已安裝FFmpeg環(huán)境
    2024-11-11
  • Python新手學(xué)習(xí)過程記錄之基礎(chǔ)環(huán)境:環(huán)境變量、版本區(qū)分、虛擬環(huán)境

    Python新手學(xué)習(xí)過程記錄之基礎(chǔ)環(huán)境:環(huán)境變量、版本區(qū)分、虛擬環(huán)境

    剛開始接觸Python開發(fā)語言,可能就會遇到一些棘手的問題,比如電腦上不知不覺已經(jīng)安裝了多個python版本,python3.8/3.10/3.11,甚至一些軟件中也集成有python解釋器;那么我編寫的python代碼,到底是使用哪個解釋器在執(zhí)行?我通過pip包管理工具安裝的依賴包到底在那個地方
    2024-05-05
  • 深入解析NumPy中的Broadcasting廣播機(jī)制

    深入解析NumPy中的Broadcasting廣播機(jī)制

    在吳恩達(dá)老師的深度學(xué)習(xí)專項課程中,老師有提到NumPy中的廣播機(jī)制,同時那一周的測驗也有涉及到廣播機(jī)制的題目。那么,到底什么是NumPy中的廣播機(jī)制?本文就來介紹一下
    2021-05-05
  • Python常用模塊之datetime模塊詳解

    Python常用模塊之datetime模塊詳解

    這篇文章主要介紹了Python常用模塊之datetime模塊詳解,datetime是Python處理日期和時間的標(biāo)準(zhǔn)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Python如何讀取MySQL數(shù)據(jù)庫表數(shù)據(jù)

    Python如何讀取MySQL數(shù)據(jù)庫表數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Python如何讀取MySQL數(shù)據(jù)庫表數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 用python爬蟲爬取CSDN博主信息

    用python爬蟲爬取CSDN博主信息

    這篇文章主要介紹了如何用python爬蟲獲取CSDN博主信息的方法,原理和代碼寫的非常詳細(xì),對大家學(xué)習(xí)Python爬取很有用處,有需要的朋友可以和小編一起看一下
    2021-04-04
  • 使用Python實現(xiàn)Oracle數(shù)據(jù)庫自動巡檢程序

    使用Python實現(xiàn)Oracle數(shù)據(jù)庫自動巡檢程序

    這篇文章主要為大家詳細(xì)介紹了如何創(chuàng)建一個Oracle數(shù)據(jù)庫自動巡檢程序,以確保數(shù)據(jù)庫的順暢運行,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Python曲線擬合多項式深入詳解

    Python曲線擬合多項式深入詳解

    這篇文章主要給大家介紹了關(guān)于Python使用scipy進(jìn)行曲線擬合的相關(guān)資料,Scipy優(yōu)化和擬合采用的是optimize模塊,該模塊提供了函數(shù)最小值(標(biāo)量或多維)、曲線擬合和尋找等式的根的有用算法,需要的朋友可以參考下
    2022-11-11
  • Python中構(gòu)建終端應(yīng)用界面利器Blessed模塊的使用

    Python中構(gòu)建終端應(yīng)用界面利器Blessed模塊的使用

    Blessed?庫作為一個輕量級且功能強大的解決方案,開始在開發(fā)者中贏得口碑,今天,我們就一起來探索一下它是如何讓終端UI開發(fā)變得輕松而高效的吧
    2025-01-01

最新評論

日照市| 红桥区| 德化县| 称多县| 凌云县| 类乌齐县| 临澧县| 五家渠市| 奉化市| 上饶县| 仙游县| 浦东新区| 宝坻区| 祁门县| 正镶白旗| 大理市| 新巴尔虎右旗| 胶南市| 玉田县| 乌兰县| 松江区| 古田县| 阳高县| 宁波市| 遂昌县| 广东省| 六枝特区| 平原县| 合阳县| 济南市| 九龙坡区| 三明市| 拜泉县| 洛宁县| 拉萨市| 五家渠市| 大石桥市| 德化县| 平江县| 赤城县| 丰台区|