2012-10-02 111 views
1

我只是进入设计模式,我正在阅读的是模式是通常独立的语言。设计模式和语言适合性

在编程中,我们有OOP和非OOP(是否有非OOP的名称?)。

我最近一直在玩template pattern,它似乎与面向对象的反直觉。事实上,这只是一堆“走向方法”(让我想起帕斯卡尔的学位),似乎有些如何“反对”OOP如何表现。

这是否意味着某些模式更适合语言(并且我认识到有些东西不太适合并不意味着它不适合)。

回答

2

模板模式实际上是一个非常好的OOP示例,因为您可以通过抽象类型引用一组相关对象,并以类似的方式对它们进行操作,因为它们每个都实现相同的“合同”的方法。据说这种模式定义了算法/程序结构,但在大多数基本情况下,它实际上只是polymorphism

您可能会认为某些模式更适合其他语言,但几乎可以使用任何语言的任何模式。

+1

是的,我没有考虑多态性。 – Dave

1

模式与语言无关,但通常针对语言系列。有OO语言通用的模式,一些是功能语言通用的模式等。

让我们以一个访问者模式为例:它在OO语言的一个子集中很受欢迎,它不支持多个分派(C++,Java ,C# - 短缺dynamic s)。但是,在多语言功能是语言功能(Common Lisp,Clojure)的语言中,这是完全没有必要的。

关于OOP与非OOP,有多种非OOP范例:函数式语言,过程式语言等。许多实际上是多种语言,例如, C++ - 它提供面向对象,程序和函数式语言的功能。另一方面,很多人不认为它是一个真正的OO语言,因为类型不是C++中的一流对象,它们可能是正确的。