1. 單例模式
只有乙個例項、它必須自行建立這個例項,不需要顯示的手動去建立例項、它必須自行向整個系統提供這個例項。
在python中模組就是乙個實現單例很好的工具,
python的模組:
所有變數都會繫結到模組
模組只需要初始化一次
import 機制是執行緒,安全的(保證在併發狀態下模式也只有乙個例項)
慣用方法:
在命名模組的時候,首個字母大寫 monitor.py
__all__
2. 裝飾器
pythonic的裝飾器
def func(arg):
def _(tmp = 0.0):
return tmp + arg
return _
a = func(0.99)
b = func(0.1)
c = func(0.2)
print a(b(c()))
-----> 1.2
3. 動態語言特有的設計模式: mixin ( and duck typing )
動態地改變例項的型別的基類,在不修改生成例項過程的情況下,給例項增加(改變)功能。可用它實現外掛程式框架。
class bird(object):
pass
bird = bird()
class flymixin:
def fly(self):
print "i can fly."
bird.__class__.__bases__ += (flymixin,)
bird.fly()
---> i can fly.
工具:docopt 直譯器模式 (vs. getopt, optparse, argparse)
Pattern 筆記 組合模式
也被稱為整體 部分模式,不管是整體還是部分,最終都是通過乙個方法來操作 部分 整體場景,樹形選單,檔案 資料夾的管理 linux 系統目錄,頂層抽象 author zyred createtime 2020 9 9 14 03 public abstract class directory 方法抽象...
晶元功能測試pattern除錯
連續2周去了上海advantest除錯量產晶元的功能測試pattern。交通 打的在田林路,古美路口下。這次我用perl直接生成asc格式的pattern,除錯起來非常方便。有需要修改的地方直接可以修改。對除錯的時間不宜估計得太樂觀。11 21,修改perl,使之符合asc格式 11 22,將i2c...
Java的Pattern和Matcher使用
這裡借網易2017年的筆試題進行介紹。牛牛拿到了乙個藏寶圖,順著藏寶圖的指示,牛牛發現了乙個藏寶盒,藏寶盒上有乙個機關,機關每次會顯示兩個字串 s 和 t,根據古老的傳說,牛牛需要每次都回答 t 是否是 s 的子串行。注意,子串行不要求在原字串中是連續的,例如串 abc,它的子串行就有 8 種。pu...