首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计模式与语言适应性

设计模式与语言适应性
EN

Stack Overflow用户
提问于 2012-10-02 12:37:31
回答 2查看 79关注 0票数 1

我只是进入设计模式,我读到的是模式通常独立于语言。

在编程中,我们有OOP和非OOP(非OOP有名字吗?)

我最近一直在玩模板模式,对OOP来说,这几乎是违反直觉的。事实上,它实际上是一堆“去方法”(在某种程度上让我想起Pascal ),似乎是“反对”OOP想要的行为。

这是否意味着某些模式更适合于语言(我理解有些东西不完全适合,但并不意味着它不合适)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-02 12:46:59

模板模式实际上是正确执行OOP的一个很好的例子,因为您可以通过抽象类型引用一组相关对象,并以类似的方式对它们进行操作,因为它们都实现了相同的方法“契约”。这种模式被称为定义算法/程序结构,但在大多数基本情况下,它实际上只是多态

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

票数 2
EN

Stack Overflow用户

发布于 2012-10-02 14:10:27

模式独立于语言,但通常是特定于语言家族的。OO语言有一些常见的模式,有些是功能语言的通用模式,等等。

让我们以访问者模式为例:它在不支持多重调度的OO语言子集中很流行(C++、Java、C# -缺少dynamics)。但是,在多个分派是语言特性的语言中,这是完全没有必要的(Common,Clojure)。

关于面向对象语言和非面向对象语言,有多种非面向对象的范式:功能语言、过程语言等。许多是真正的多范式--语言,例如C++ --它提供了面向对象、过程语言和功能语言的特性。另一方面,许多人并不认为它是真正的面向对象语言,因为类型不是C++中的一流对象,而且它们很可能是正确的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12690383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档