Questions tagged «design-patterns»

设计模式是解决软件设计中常见问题的通用可重用解决方案。当您对设计模式的实现有疑问时,请使用此标签来提问。请不要在有关文本模式匹配的问题上使用此标签。当在实现上遇到重磅问题时使用此标记-标记实现所使用的代码语言。

23
消除代码切换的方法
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 改善这个问题 消除在代码中使用switch的方法有哪些?

3
Facebook架构[关闭]
在这里很难说出要问什么。这个问题是模棱两可,含糊不清,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 我一直在寻找有关Facebook架构,它们所面临的挑战和方式的文章/信息。他们使用什么以及为什么使用。他们如何扩展规模以及他们做什么的设计决策等。主要的基础是学习。了解处理大量流量的站点可以为架构师等提供很多指导,以便在设计新站点时牢记某些内容。我正在分享我的发现。 Facebook科学与社交图谱(视频) 在Facebook上扩展 Facebook聊天架构 Facebook博客 Facebook Cassandra建筑与设计 Facebook工程说明 Quora-Facebook体系结构 适用于6亿用户的Facebook Hadoop及其在Facebook上的使用 Facebook上的Erlang:聊天架构 Facebook性能缓存 Facebook Connect架构 我还有2个链接,但由于此站点的限制而无法发布。另外,如果有人有更好的东西,请分享(不需要仅与Facebook相关)。 PS-我找不到合适的地方分享这项研究,因此就没有这项计划了。希望这对某人有帮助。


9
Shell脚本的设计模式或最佳实践
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 是否有人知道任何有关壳脚本(sh,bash等)的最佳实践或设计模式的资源?

6
python设计模式
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 我正在寻找使用Python给出最佳实践,设计模式和SOLID原理示例的任何资源。

10
C#对象池模式实现
有没有人有足够的资源来执行共享对象池策略,以实现有限的SQL连接池资源?(即将完全实现它是线程安全的)。 为了进一步澄清@Aaronaught请求,池使用将用于平衡对外部服务的请求。相比于我的直接观点,将其置于一种可能更容易立即理解的场景中。我有一个会话对象,其功能ISession与NHibernate中的对象类似。每个唯一的会话都管理着它与数据库的连接。当前,我有1个长时间运行的会话对象,并且遇到服务提供商正在限制我对单个会话的使用率的问题。 由于他们不希望将单个会话视为长期运行的服务帐户,因此他们显然将其视为重锤其服务的客户。这使我想到这里的问题,而不是创建一个单独的会话,而不是创建一个不同会话的池,并将请求拆分到多个会话中的服务上,而不是像我以前那样创建一个联络点。 希望背景可以提供一些价值,但可以直接回答您的一些问题: 问:创建对象是否昂贵? 答:没有对象是有限的资源池 问:它们会经常被获取/发布吗? 答:是的,他们可以再次想到NHibernate ISessions,通常在每个单页请求期间获取并释放1。 问:简单的先到先得就足够了吗?还是您需要更智能的东西,即可以防止饥饿? 答:一个简单的循环类型分配就足够了,由于饥饿,我假设您的意思是,如果没有可用的会话,则呼叫者会被阻止等待释放。这实际上并不适用,因为会话可以由不同的呼叫者共享。我的目标是在多个会话中分配使用情况,而不是在单个会话中进行分配。 我认为这可能与对象池的正常使用有所不同,这就是为什么我最初将这一部分省略并计划只是为了适应模式以允许对象共享而不是让饥饿情况发生的原因。 问:优先级,延迟加载与急切加载等事情如何? 答:不涉及优先级,为简单起见,仅假设我将在创建池本身时创建可用对象池。

4
观察者,发布/订阅和数据绑定之间的区别
观察者模式,发布/订阅和数据绑定之间有什么区别? 我在Stack Overflow上进行了一些搜索,没有找到任何好的答案。 我已经相信数据绑定是一个通用术语,并且有多种实现它的方式,例如观察者模式或发布/订阅模式。通过观察者模式,观察者更新其观察者。使用发布/订阅,0个发布者可以发布某些类别的消息,0个订阅者可以订阅某些类别的消息。 还有其他实现“数据绑定”的模式吗?


10
Windows窗体的UI设计模式(如WPF的MVVM)
MVVM最适合WPF使用,因为它非常适合。但是Windows窗体呢?Windows窗体是否也有这样的既定且常用的方法/设计模式?一种可以与Windows Forms完美配合的软件吗?有没有一本书或一篇文章对此进行了很好的描述?也许基于MVP或MVC?


4
为什么以及如何避免事件处理程序内存泄漏?
通过阅读关于StackOverflow的一些问题和答案,我才意识到,+=在C#中使用事件处理程序(或者,我猜是其他.net语言)会导致常见的内存泄漏。 过去,我多次使用过这样的事件处理程序,但从未意识到它们会导致或导致应用程序中的内存泄漏。 这是如何工作的(意味着,为什么这实际上会导致内存泄漏)? 我该如何解决这个问题?使用-=同一事件处理程序是否足够? 是否存在处理此类情况的通用设计模式或最佳实践? 示例:我应该如何处理具有许多不同线程的应用程序,并使用许多不同的事件处理程序在UI上引发多个事件? 在已经构建的大型应用程序中,是否有任何简便的方法可以有效地对此进行监视?


5
AngularJS:了解设计模式
在AngularJS负责人Igor Minar 的这篇文章中: MVC vs MVVM vs MVP。许多开发人员可能花费数小时来辩论和争论,这是一个有争议的话题。 几年来,AngularJS更加接近于MVC(或其客户端变体之一),但是随着时间的流逝,由于许多重构和api的改进,它现在更加接近MVVM – $ scope对象可以被认为是正在被开发的ViewModel。由我们称为Controller的函数修饰。 能够对框架进行分类并将其放入MV *存储桶之一具有一些优势。通过使创建代表使用框架构建的应用程序的思维模型更容易,它可以帮助开发人员更熟悉其api。它还可以帮助建立开发人员使用的术语。 话虽如此,我宁愿看到开发人员构建精心设计并遵循关注点分离的踢屁股应用程序,而不希望他们浪费时间争论MV *废话。出于这个原因,我特此声明 AngularJS为MVW框架-Model-View-Whatever。凡代表什么“ 对您有用 ”。 Angular为您提供了很大的灵活性,可以很好地将表示逻辑与业务逻辑和表示状态分开。请使用它来提高您的生产力和应用程序可维护性,而不必热烈讨论最后没什么大不了的事情。 在客户端应用程序中实现AngularJS MVW(模型-视图-任何)设计模式是否有任何建议或准则?


12
从概念上讲,重播如何在游戏中起作用?
我对如何在游戏中实现重播感到很好奇。 最初,我认为游戏中只会有每个玩家/ ai动作的命令列表,然后“重玩”游戏并让引擎照常渲染。但是,我研究了FPS / RTS游戏中的重播,经过仔细检查,甚至粒子和图形/听觉故障之类的东西都是一致的(而且这些故障通常是一致的)。 那么这是怎么发生的。在固定摄影机角度的游戏中,我可能只是将整个场景的每一帧写入要存储的流中,然后重新播放该流,但这对于允许您暂停和移动摄影机的游戏来说似乎还不够周围。您必须在所有时间点存储场景中所有内容的位置(否?)。因此,对于粒子之类的东西来说,要推送的数据很多,这似乎在游戏过程中极大地吸引了游戏性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.