欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年01月09日 10:50:39   作者:李自泰  
這篇文章主要介紹了Python設(shè)計(jì)模式之門面模式,簡(jiǎn)單描述了門面模式的概念、原理,并結(jié)合實(shí)例形式給出了Python定義與使用門面模式的具體操作技巧,需要的朋友可以參考下

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

facade:建筑物的表面

門面模式是一個(gè)軟件工程設(shè)計(jì)模式,主要用于面向?qū)ο缶幊獭?一個(gè)門面可以看作是為大段代碼提供簡(jiǎn)單接口的對(duì)象,就像類庫(kù)。

門面模式被歸入建筑設(shè)計(jì)模式。門面模式隱藏系統(tǒng)內(nèi)部的細(xì)節(jié)和復(fù)雜度,給用戶提供一個(gè)簡(jiǎn)單的接口,采用門面模式,用戶能夠使用簡(jiǎn)單的接口進(jìn)行工作,而不用擔(dān)心系統(tǒng)的復(fù)雜。

理解門面模式最重要的一點(diǎn)就是它提供的簡(jiǎn)單接口是系統(tǒng)的一部分。因此提供簡(jiǎn)單易用的功能要?jiǎng)龠^(guò)完整的功能。

門面模式的優(yōu)點(diǎn)是向用戶提供的基礎(chǔ)類的操作,在當(dāng)前門面模式的實(shí)現(xiàn)下,是不會(huì)向用戶提供可控的,定制化的接口。

基于以上原因,門面模式不是對(duì)子系統(tǒng)的封裝,而是對(duì)可選的功能提供簡(jiǎn)單的接口

下面是用塊圖,對(duì)門面模式的解釋:

1.在塊圖表中,我們有將計(jì)算機(jī)分成三種類來(lái)表示:CPU,Memory,HardDrive。

cpu類有一個(gè)方法是jump()和execute(),Memory類有方法,load(),HardDrive類有一個(gè)read()方法

2.我們有個(gè)一個(gè)門面類,Computer Class ,提供start()方法給用戶。

3.當(dāng)用戶想要開(kāi)啟電腦系統(tǒng)的時(shí)候,它調(diào)用Computer類的start()方法.
一個(gè)簡(jiǎn)單的python例子:

讓我們來(lái)考慮一個(gè)測(cè)試自動(dòng)化的框架,測(cè)試需要運(yùn)行在特定構(gòu)建類上,比如'TC1,TC2…TCn',每一個(gè)類都包涵一個(gè)方法'run()'來(lái)執(zhí)行測(cè)試。

我們提供了一個(gè)門面-TestRunner-在測(cè)試類之上,作為執(zhí)行測(cè)試的簡(jiǎn)單接口。以這種方式,客戶不在需要擔(dān)心有多少測(cè)試在執(zhí)行,怎么樣執(zhí)行他。

TestRunner類有一個(gè)方法名runAll,是執(zhí)行已經(jīng)注冊(cè)的所有測(cè)試。

當(dāng)用戶的自動(dòng)框架為執(zhí)行測(cè)試去構(gòu)建,作為客戶,他需要?jiǎng)?chuàng)建一個(gè)TestRunner類,調(diào)用runall方法,runall方法會(huì)返回創(chuàng)建的測(cè)試對(duì)象,

并調(diào)用他們的run 方法,這樣執(zhí)行了所有測(cè)試。

以下是代碼:

import time
class TC1:
  def run(self):
    print "####In Test 1####"
    time.sleep(1)
    print "Setting up"
    time.sleep(1)
    print "Running test"
    time.sleep(1)
    print "Tearing down"
    time.sleep(1)
    print "Test Finished\n"
class TC2:
  def run(self):
    print "#####In Test 2 ######"
    time.sleep(1)
    print "Setting up"
    time.sleep(1)
    print "Running test"
    time.sleep(1)
    print "Tearing down"
    time.sleep(1)
    print "Test Finished\n"
class TC3:
  def run(self):
    print "#####In Test 3 ######"
    time.sleep(1)
    print "Setting up"
    time.sleep(1)
    print "Running test"
    time.sleep(1)
    print "Tearing down"
    time.sleep(1)
    print "Test Finished\n"
#Facade
class TestRunner:
  def __init__(self):
    self.tc1 = TC1()
    self.tc2 = TC2()
    self.tc3 = TC3()
  def runAll(self):
    self.tc1.run()
    self.tc2.run()
    self.tc3.run()
#Client
if __name__ == '__main__':
  testrunner = TestRunner()
  testrunner.runAll()

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

更多關(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)典教程

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

您可能感興趣的文章:

相關(guān)文章

  • Python控制windows系統(tǒng)音量實(shí)現(xiàn)實(shí)例

    Python控制windows系統(tǒng)音量實(shí)現(xiàn)實(shí)例

    這篇文章主要介紹了Python控制windows系統(tǒng)音量實(shí)現(xiàn)實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • Python基礎(chǔ)之文件讀取的講解

    Python基礎(chǔ)之文件讀取的講解

    今天小編就為大家分享一篇關(guān)于Python基礎(chǔ)之文件讀取的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • python讀取mat文件生成h5文件的實(shí)現(xiàn)

    python讀取mat文件生成h5文件的實(shí)現(xiàn)

    這篇文章主要介紹了python讀取mat文件生成h5文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 如何用Python一次性下載抖音上音樂(lè)

    如何用Python一次性下載抖音上音樂(lè)

    不知道什么時(shí)候開(kāi)始,中國(guó)出現(xiàn)了南抖音、北快手的互文格局。喜歡抖音主要是兩個(gè)初衷,學(xué)做菜聽(tīng)音樂(lè)。抖音捧紅了很多人,也讓很多本不怎么讓大家熟知的歌曲、BGM,經(jīng)過(guò)翻唱、混剪與視頻搭配,從而傳播大街小巷。有沒(méi)有想過(guò)將這些好聽(tīng)的剪輯批量下載下來(lái)呢?
    2021-05-05
  • Python如何對(duì)XML 解析

    Python如何對(duì)XML 解析

    這篇文章主要介紹了Python對(duì)XML 解析的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • python selenium 彈出框處理的實(shí)現(xiàn)

    python selenium 彈出框處理的實(shí)現(xiàn)

    這篇文章主要介紹了python selenium 彈出框處理的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Python自動(dòng)化測(cè)試ConfigParser模塊讀寫(xiě)配置文件

    Python自動(dòng)化測(cè)試ConfigParser模塊讀寫(xiě)配置文件

    本文主要介紹Python自動(dòng)化測(cè)試,這里詳細(xì)說(shuō)明了ConfigParser模塊讀寫(xiě)配置文件,有興趣的小伙伴可以參考下
    2016-08-08
  • 對(duì)numpy中數(shù)組轉(zhuǎn)置的求解以及向量?jī)?nèi)積計(jì)算方法

    對(duì)numpy中數(shù)組轉(zhuǎn)置的求解以及向量?jī)?nèi)積計(jì)算方法

    今天小編就為大家分享一篇對(duì)numpy中數(shù)組轉(zhuǎn)置的求解以及向量?jī)?nèi)積計(jì)算方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python實(shí)現(xiàn)給數(shù)組按片賦值的方法

    python實(shí)現(xiàn)給數(shù)組按片賦值的方法

    這篇文章主要介紹了python實(shí)現(xiàn)給數(shù)組按片賦值的方法,實(shí)例分析了Python在指定位置進(jìn)行賦值的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程

    Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程

    當(dāng)多個(gè)進(jìn)程使用同一份數(shù)據(jù)資源的時(shí)候,因?yàn)檫M(jìn)程的運(yùn)行沒(méi)有順序,運(yùn)行起來(lái)也無(wú)法控制,如果不加以干預(yù),往往會(huì)引發(fā)數(shù)據(jù)安全或順序混亂的問(wèn)題,所以要在多個(gè)進(jìn)程讀寫(xiě)共享數(shù)據(jù)資源的時(shí)候加以適當(dāng)?shù)牟呗?,?lái)保證數(shù)據(jù)的一致性問(wèn)題
    2023-01-01

最新評(píng)論