Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 哪些设计模式可以提高性能?_Design Patterns - Fatal编程技术网

Design patterns 哪些设计模式可以提高性能?

Design patterns 哪些设计模式可以提高性能?,design-patterns,Design Patterns,当我们谈论设计模式时,我听到的第一件事总是类似于对常见架构问题的文档化解决方案 我很想知道哪些设计模式是提高应用程序总体性能的好方法。没有比这更好的方法。设计模式用于简化开发和维护 大多数设计模式用于 design pattern is a general reusable solution to a commonly occurring problem in software design 可能是“不要做傻事”的模式。如果你沿着球座走,你会发现它比: 工厂 独生子女 MVC 面向方面编程

当我们谈论设计模式时,我听到的第一件事总是类似于对常见架构问题的文档化解决方案


我很想知道哪些设计模式是提高应用程序总体性能的好方法。

没有比这更好的方法。设计模式用于简化
开发和
维护

大多数设计模式用于

design pattern is a general reusable solution to a commonly occurring problem in software design
可能是“不要做傻事”的模式。如果你沿着球座走,你会发现它比:

  • 工厂
  • 独生子女
  • MVC
  • 面向方面编程
  • 极限编程和极限程序员(无情地)
  • DotNetNuke(两次)
  • Drupal(一次)

简单地说,设计模式可能会降低性能。根据我的经验,设计模式的使用提供了更干净、更可维护的代码。如果您需要优化任何东西,您可能需要对代码进行反模式设计


通常,代码的性能取决于相对较小的部分(数据结构、函数,甚至单个循环),因此它不会以任何方式进入设计模式的范围。将C中的直接函数更改为assembly中的超级优化版本可能不会改变整个类的行为方式。

Flyweight减少内存消耗

代理模式可用于速度优化

桥接模式可以动态地改变抽象的实现——总是选择 最有效的一个。

对象池模式是一种软件创造性设计模式,它 使用一组准备好使用的初始化对象–一个“池”– 而不是按需分配和销毁它们

对象池主要用于性能:在某些情况下 在这种情况下,对象池可以显著提高性能


@user619133,您应用的模式特定于您试图解决的问题。这是一种误解,认为1种设计模式可以适用于所有解决方案。一般来说,生活的答案是什么?这些模式非常有用。在内存仍然存在问题的小型设备中,管理内存可以提高性能。我相信单例模式还可以有效地提高内存管理效率单例解决了一次只维护一个实例的问题。它不能解决任何效率问题。此外,这是最棘手的模式,应该避免,除非没有其他解决方案(事实上总是有)。是的,你是对的。看到你的评论后,我在谷歌上搜索了一下,得到了这些链接。简而言之,单例模式对内存非常有害,因为它永远不会被释放。它可能会导致代码不清晰,不利于测试。正如所指出的,唯一可以使用它的地方是记录flyweight模式。这个链接很好地解释了为什么它对性能有好处“分配大量(通常很小的)对象可能会损害java应用程序的性能,尽管现代JVM已经大大减少了您必须为这样的过量付出代价。如果您发现应用程序正在实例化特定类型的许多对象,您可能会考虑使用FLIZHORE模式来共享这些对象的有限数量。在某种程度上,您是对的,我认为设计模式最重要的用途是使代码易于扩展、维护,并以有效的方式管理内存