一个设计模式的请教

这几天遇到一个BUG引发的联想,起因是一个ORM(peewee)把python内置的logging的配置给覆盖了,正常的东西无法输出,反而是输出大量转化后的原生的SQL语句。而导致这个问题仅仅是引用了一个类(还没初始化,仅仅是引用)。

因此,想请教一下,是否算是一种设计模式,像角色扮演游戏那样,一个角色可以为附近的队友加buffer一样的效果。比如说我在一个脚本里用print输出一些文字到sys.stdout上,然而,只因为我导入了某个类进来,print的含义马上从输出变成发送这些消息到一个邮箱。相当于给print加了buff,建立起一个立场一样。或者说角色扮演的一个角色因为“变身”,而原来的技能都变了样。那样就可以实现“组件化”一般了,而之前我常用对象继承封装次数一多耦合度和BUG都会急剧增加。

正常情况

# 输出字符串print 'design pattern'

增加buffer

from somewhere import mail_buffer
print 'design pattern'#某人收到一封邮件,里面写着'design pattern'

我查找到一些现成设计模式的说明,然而我也是新手,看不出大概是对应哪一种设计模式,不知道对设计模式熟悉的人看完上面是否有点思路?谢谢!


回首忆惘然
浏览 1159回答 1
1回答

一只名叫tom的猫

其实可以看作面向interface编程interface,定义一个interface,一个方法叫输出,A,B两个类都实现这个接口,A类里面是打印流,B类是写文件,这样在调用的时候只需要根据需要获取对应类的对象就行了,这样就实现了解耦,尤其是配合Ioc使用更明显
打开App,查看更多内容
随时随地看视频慕课网APP