我只是进入设计模式,我读到的是模式通常独立于语言。
在编程中,我们有OOP和非OOP(非OOP有名字吗?)
我最近一直在玩模板模式,对OOP来说,这几乎是违反直觉的。事实上,它实际上是一堆“去方法”(在某种程度上让我想起Pascal ),似乎是“反对”OOP想要的行为。
这是否意味着某些模式更适合于语言(我理解有些东西不完全适合,但并不意味着它不合适)。
发布于 2012-10-02 12:46:59
模板模式实际上是正确执行OOP的一个很好的例子,因为您可以通过抽象类型引用一组相关对象,并以类似的方式对它们进行操作,因为它们都实现了相同的方法“契约”。这种模式被称为定义算法/程序结构,但在大多数基本情况下,它实际上只是多态。
您可能会认为某些模式更适合其他语言,但您几乎可以在任何语言中使用任何模式。
发布于 2012-10-02 14:10:27
模式独立于语言,但通常是特定于语言家族的。OO语言有一些常见的模式,有些是功能语言的通用模式,等等。
让我们以访问者模式为例:它在不支持多重调度的OO语言子集中很流行(C++、Java、C# -缺少dynamics)。但是,在多个分派是语言特性的语言中,这是完全没有必要的(Common,Clojure)。
关于面向对象语言和非面向对象语言,有多种非面向对象的范式:功能语言、过程语言等。许多是真正的多范式--语言,例如C++ --它提供了面向对象、过程语言和功能语言的特性。另一方面,许多人并不认为它是真正的面向对象语言,因为类型不是C++中的一流对象,而且它们很可能是正确的。
https://stackoverflow.com/questions/12690383
复制相似问题