gpt4 book ai didi

design-patterns - 单例或 DRY

转载 作者:行者123 更新时间:2023-12-04 05:39:18 25 4
gpt4 key购买 nike

假设您有一个与数据库交互的系统。由于系统大量使用数据库,几乎每个子程序都遵循这种模式:

foo(database, rest, of, arguments)

这很快就被注意到了,因为 foo 是一个更大对象的一部分,所以连接变量被移动到一个对象变量中。不幸的是,这意味着每个模型对象的构造函数都接受这个参数。

因此,您决定创建一个可以生成与数据库的连接的模块。由于与数据库的连接成本很高,因此连接被缓存,并且该缓存值在以后的调用中返回。

你刚刚创建的是一个单例。这是开发社区中普遍反对的一种模式。再说一次,DRY 是一个受到鼓励的原则,甚至比不鼓励单例模式更是如此。

那么哪个更好呢?您的选择是增加进入每个函数调用(或至少是构造函数)的参数数量,或者创建一个单例。有没有我没有看到的第三种选择?

编辑:反对单例的文章是 http://blogs.msdn.com/b/scottdensmore/archive/2004/05/25/140827.aspx .我认为那里提出的论点是有道理的,我希望反单例阵营能够解决这个设计问题。

最佳答案

DRY 比“不要使用单例”更重要,如果任何人都真正阐明了任何这样的原则(而不是说,“不要严重滥用单例”)。如果可以,也可以随意满足,但如果只能满足一个,请满足 DRY。

关于design-patterns - 单例或 DRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11477220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com