日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python设计模式名片_Python设计模式之门面模式简单示例

發布時間:2023/12/15 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python设计模式名片_Python设计模式之门面模式简单示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了python設計模式之門面模式。分享給大家供大家參考,具體如下:

facade:建筑物的表面

門面模式是一個軟件工程設計模式,主要用于面向對象編程。 一個門面可以看作是為大段代碼提供簡單接口的對象,就像類庫。

門面模式被歸入建筑設計模式。門面模式隱藏系統內部的細節和復雜度,給用戶提供一個簡單的接口,采用門面模式,用戶能夠使用簡單的接口進行工作,而不用擔心系統的復雜。

理解門面模式最重要的一點就是它提供的簡單接口是系統的一部分。因此提供簡單易用的功能要勝過完整的功能。

門面模式的優點是向用戶提供的基礎類的操作,在當前門面模式的實現下,是不會向用戶提供可控的,定制化的接口。

基于以上原因,門面模式不是對子系統的封裝,而是對可選的功能提供簡單的接口

下面是用塊圖,對門面模式的解釋:

1.在塊圖表中,我們有將計算機分成三種類來表示:CPU,Memory,HardDrive。

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

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

3.當用戶想要開啟電腦系統的時候,它調用Computer類的start()方法.

一個簡單的python例子:

讓我們來考慮一個測試自動化的框架,測試需要運行在特定構建類上,比如'TC1,TC2…TCn',每一個類都包涵一個方法'run()'來執行測試。

我們提供了一個門面-TestRunner-在測試類之上,作為執行測試的簡單接口。以這種方式,客戶不在需要擔心有多少測試在執行,怎么樣執行他。

TestRunner類有一個方法名runAll,是執行已經注冊的所有測試。

當用戶的自動框架為執行測試去構建,作為客戶,他需要創建一個TestRunner類,調用runall方法,runall方法會返回創建的測試對象,

并調用他們的run 方法,這樣執行了所有測試。

以下是代碼: 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()

運行結果:

更多關于Python相關內容可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

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

總結

以上是生活随笔為你收集整理的python设计模式名片_Python设计模式之门面模式简单示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。