這幾天遇到一個BUG引發(fā)的聯(lián)想,起因是一個ORM(peewee)把python內(nèi)置的logging的配置給覆蓋了,正常的東西無法輸出,反而是輸出大量轉(zhuǎn)化后的原生的SQL語句。而導(dǎo)致這個問題僅僅是引用了一個類(還沒初始化,僅僅是引用)。因此,想請教一下,是否算是一種設(shè)計模式,像角色扮演游戲那樣,一個角色可以為附近的隊友加buffer一樣的效果。比如說我在一個腳本里用print輸出一些文字到sys.stdout上,然而,只因為我導(dǎo)入了某個類進來,print的含義馬上從輸出變成發(fā)送這些消息到一個郵箱。相當于給print加了buff,建立起一個立場一樣。或者說角色扮演的一個角色因為“變身”,而原來的技能都變了樣。那樣就可以實現(xiàn)“組件化”一般了,而之前我常用對象繼承封裝次數(shù)一多耦合度和BUG都會急劇增加。正常情況# 輸出字符串print 'design pattern'增加bufferfrom somewhere import mail_buffer
print 'design pattern'#某人收到一封郵件,里面寫著'design pattern'我查找到一些現(xiàn)成設(shè)計模式的說明,然而我也是新手,看不出大概是對應(yīng)哪一種設(shè)計模式,不知道對設(shè)計模式熟悉的人看完上面是否有點思路?謝謝!
1 回答

一只名叫tom的貓
TA貢獻1906條經(jīng)驗 獲得超3個贊
其實可以看作面向interface編程interface,定義一個interface,一個方法叫輸出,A,B兩個類都實現(xiàn)這個接口,A類里面是打印流,B類是寫文件,這樣在調(diào)用的時候只需要根據(jù)需要獲取對應(yīng)類的對象就行了,這樣就實現(xiàn)了解耦,尤其是配合Ioc使用更明顯
- 1 回答
- 0 關(guān)注
- 1224 瀏覽
添加回答
舉報
0/150
提交
取消