App自動化之單例的編寫和引用-----中級篇(11)

單例模式(Singleton Pattern)是一種常用的軟件設計模式,該模式的主要目的是確保某一個類只有一個實例存在。
當你希望在整個系統中,某個類只能出現一個實例時,單例對象就能派上用場。

我們都知道,要想用代碼調試app應用,那麼就需要做參數配置,那麼常規性的,我們是這樣做的

import appium.webdriver as drivers
result = {
    "platformName":"Android",
    "platformVersion":"5.1.1",
    "appActivity":".SplashActivity",
    "appPackage":"com.jhss.youguu",
    "deviceName":"127.0.0.1:62001",
    "newCommandTimeout":5000
}
driver = drivers.Remote("http://localhost:4723/wd/hub",result)

那麼,怎樣實現一個單例的編寫呢?

代碼如下:

def get_peizhi(cls,*loc,**dice):
    _oos = {}
    def _pp():
        if cls not in _oos :
            _oos[cls] = cls(*loc,**dice)
        return _oos[cls]
    return _pp

調用單例:

import appium.webdriver as drivers
from 單例_裝飾器 import get_peizhi
@get_peizhi
class Get_Driver():
    def __init__(self):
        config = {}
        config['platformName'] = 'Android'
        config['platformVersion'] = '5.1.1'
        config["deviceName"] = "127.0.0.1:62001" 
        config["appPackage"] = "me.onehome.app"
        config["appActivity"] = ".activity.ActivitySplash_"
        config['noReset'] = True
        self.driver = drivers.Remote("http://localhost:4723/wd/hub",config)

driver = Get_Driver().driver

這裏的單例就寫到這裏,具體什麼時候會用到? 看情況吧,至少我現在是沒有用到過單例,但這個東西存在了,就會有使用到的地方

在python3.多版本以上,引用模塊是支持中文的

我在之前的pycharm2017版本使用unittest運行方式運行的以中文命名的.py文件會報錯

剩下的以中文命名模塊的問題並未發現,我認爲所有的報錯都是已知的,用中文命名僅是不規範而已,但後續的PO模式設計理念,是多多少少涉及中文的

最後,留存博客,編寫單例與調用不再是問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章