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

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

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

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

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

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

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

買(mǎi)米
掃地
洗衣

上面類(lèi)的設(shè)計(jì)如下圖:

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

更多關(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線程池的實(shí)現(xiàn)淺析

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

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

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

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

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

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

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

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

    Python常用模塊之datetime模塊詳解

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

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

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

    用python爬蟲(chóng)爬取CSDN博主信息

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

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

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

    Python曲線擬合多項(xiàng)式深入詳解

    這篇文章主要給大家介紹了關(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?庫(kù)作為一個(gè)輕量級(jí)且功能強(qiáng)大的解決方案,開(kāi)始在開(kāi)發(fā)者中贏得口碑,今天,我們就一起來(lái)探索一下它是如何讓終端UI開(kāi)發(fā)變得輕松而高效的吧
    2025-01-01

最新評(píng)論

岱山县| 闸北区| 绥棱县| 江津市| 凤城市| 邛崃市| 墨竹工卡县| 霍州市| 乌审旗| 琼中| 馆陶县| 丹阳市| 阳西县| 新丰县| 吉首市| 光泽县| 冷水江市| 磐安县| 萍乡市| 溧阳市| 二手房| 芦山县| 高唐县| 石楼县| 弥勒县| 叙永县| 阳城县| 清涧县| 九龙坡区| 瑞安市| 花莲市| 南溪县| 教育| 青州市| 西藏| 富平县| 正阳县| 米脂县| 呼和浩特市| 台东市| 武义县|