|
1
6
与模式是语言不可知论的观点相反,两者 Paul Graham 和 Peter Norvig 有人认为,使用模式的需要表明您的语言缺少一个特性(访客模式通常被认为是这方面最突出的例子。) 我一般认为“模式”和“习语”的主要区别在于大小。习惯用法是一些小东西,比如“为保存集合的变量类型使用接口”,而模式往往更大。我认为习语的微小之处确实意味着它们更多地是特定于语言的(我刚才给出的例子是Java习语),但我不认为这是它们的定义特征。 |
|
|
2
11
习语是语言特有的。 模式是独立于语言的设计原则,通常用“模式语言”(一个统一的模板)编写,描述激励环境、优点和缺点等;缺点、相关模式等。 |
|
|
3
7
当人们从高层(分析师、顾问、学者、方法论大师等)观察程序开发时,看到开发人员在各种情况和环境中一遍又一遍地做同样的事情,那么从观察中获得的智能可以提炼成一种模式。模式是一种使用手边的软件工具“做事情”的方式,这些工具表示一个通用的抽象。
有时候,很多开发人员都以某种方式做事情,但这是一种不好的方式,不应该被推荐。这可以在 反模式 .
因为模式有点理论化和形式化,所以通常会有一个正式的模式(呵呵,单词重载!让我们用“模板”)来描述它们。此类模板可包括:
在C语言中,从
是一种Perl习惯用法,用于循环输入文件并打印出文件中的所有行。在那个语句中有很多隐式变量的用法。同样,除了在Perl中,您不会在任何地方看到这种特殊语法;但是一个老的Perl黑客会快速查看该语句,并立即识别您正在做什么。 |
|
|
4
3
另一方面,模式更不依赖于语言(尽管它们通常指的是特定的范式)。您可能有一些基础设施来支持它们(例如,Spring for MVC),但它们不是也不会是语言结构,而且您可能需要该范例中的任何语言。 |