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
Language agnostic 什么是设计模式?它如何使一个人受益;什么是编程效率?_Language Agnostic_Design Patterns - Fatal编程技术网

Language agnostic 什么是设计模式?它如何使一个人受益;什么是编程效率?

Language agnostic 什么是设计模式?它如何使一个人受益;什么是编程效率?,language-agnostic,design-patterns,Language Agnostic,Design Patterns,我一直在阅读各种编程风格,如XP(首先编写测试),并偶然发现了一本Java书籍,其中只包含设计模式,看起来像伪代码 这些设计模式的用途是什么?编程环境中的design apttern指的是什么?它的应用程序是什么?它是否像构建特定领域应用程序的蓝图一样?将设计模式称为“蓝图”是正确的 它们是解决问题的“标准”方式,你可以根据自己的情况进行调整。模式的完整描述应包括边/角案例,使您能够更直接地编写解决方案 你仍然必须确保你选择了正确的模式来解决你的问题,并且知道它何时何地适用,也许更重要的是,它在

我一直在阅读各种编程风格,如XP(首先编写测试),并偶然发现了一本Java书籍,其中只包含设计模式,看起来像伪代码


这些设计模式的用途是什么?编程环境中的design apttern指的是什么?它的应用程序是什么?它是否像构建特定领域应用程序的蓝图一样?

将设计模式称为“蓝图”是正确的

它们是解决问题的“标准”方式,你可以根据自己的情况进行调整。模式的完整描述应包括边/角案例,使您能够更直接地编写解决方案

你仍然必须确保你选择了正确的模式来解决你的问题,并且知道它何时何地适用,也许更重要的是,它在哪里不适用


它不是为您编写代码的“银弹”。

将设计模式称为“蓝图”是正确的

它们是解决问题的“标准”方式,你可以根据自己的情况进行调整。模式的完整描述应包括边/角案例,使您能够更直接地编写解决方案

你仍然必须确保你选择了正确的模式来解决你的问题,并且知道它何时何地适用,也许更重要的是,它在哪里不适用


它不是为您编写代码的“银弹”。

您使用的测试驱动开发(作为示例)并不是真正的“设计模式”

设计模式是构建程序以解决常见但抽象问题的方法。一个典型的例子是工厂模式。当您想要封装(即,防止调用方干扰)对象创建的各个方面时,可以使用工厂来处理创建新对象的过程


你可能想在谷歌上搜索“四人帮”,他们编写了关于设计模式的教科书

您使用的测试驱动开发(作为示例)并不是真正的“设计模式”

设计模式是构建程序以解决常见但抽象问题的方法。一个典型的例子是工厂模式。当您想要封装(即,防止调用方干扰)对象创建的各个方面时,可以使用工厂来处理创建新对象的过程


你可能想在谷歌上搜索“四人帮”,他们编写了关于设计模式的教科书

设计模式是描述常见问题解决方案的方法。它们不是一段特定的代码,通常可以以不同的方式实现

例如,如果你看工程,设计模式可以是“轮子”。可能有很多不同类型的轮子,但有一个“轮子”的一般概念保持不变

在软件开发中,也有类似的想法,对于一个常见的问题“只起作用”,例如,如果你告诉另一个开发人员你使用了“工厂”,他大致知道你的意思,就像工程师大致知道你所说的“轮子”是什么意思一样


因此,设计模式是澄清开发人员之间沟通的一种方式,可以作为可重用的想法。它们有点像用于更抽象编程解决方案的库,这些解决方案大多独立于您使用的实际语言。

设计模式是描述常见问题解决方案的方法。它们不是一段特定的代码,通常可以以不同的方式实现

例如,如果你看工程,设计模式可以是“轮子”。可能有很多不同类型的轮子,但有一个“轮子”的一般概念保持不变

在软件开发中,也有类似的想法,对于一个常见的问题“只起作用”,例如,如果你告诉另一个开发人员你使用了“工厂”,他大致知道你的意思,就像工程师大致知道你所说的“轮子”是什么意思一样


因此,设计模式是澄清开发人员之间沟通的一种方式,可以作为可重用的想法。它们有点像用于更抽象编程解决方案的库,这些解决方案基本上独立于您使用的实际语言。

是的,但在较小的层面上,它们不是整个应用程序的蓝图,而是您在构建应用程序时通常遇到的问题的蓝图

例如,当您希望根据字符串创建不同对象的实例时。您可能会尝试一系列的ifs,稍后会注意到通过语言的反射功能来实现这一点是低效的,然后会注意到这是不灵活的,并且会产生一个关联列表来映射字符串,不同的函数创建不同类的实例

这个最终的解决方案非常有效,而且非常优雅,因此当您将来遇到类似的问题时,您将使用类似的技术,而不必首先尝试所有的死胡同。恭喜你,你刚刚发明了一种设计模式

1994年,“四人帮”(Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides)有了收集这些重复出现的模式的想法,并将它们发表在一本名为“设计模式”的书中


当然,了解这些模式的好处是,您可以为所使用的技术命名(这样可以更容易地与更高级别的其他人讨论类设计),而且其他了解设计模式的程序员也会以类似的方式命名他们的结构(这样您就可以在代码中识别它们)。

是的,但在较小的层面上,它们不是整个应用程序的蓝图,而是构建应用程序时通常遇到的问题的蓝图

例如,当您希望根据字符串创建不同对象的实例时。稍后,您可能会尝试一系列的“如果”