一个设计模式的请教

发布于 2022-09-04 02:22:37 字数 638 浏览 9 评论 0

这几天遇到一个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'

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁的新欢旧爱 2022-09-11 02:22:38

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文