【问题标题】:Is Design Pattern only for Object-Oriented design?设计模式仅适用于面向对象的设计吗?
【发布时间】:2010-05-24 16:09:58
【问题描述】:

我想知道是否所有的设计模式都只用于面向对象的设计?有没有在非面向对象设计中使用的设计模式?

感谢和问候!

【问题讨论】:

    标签: design-patterns oop


    【解决方案1】:

    函数式战略编程的设计模式
    http://arxiv.org/abs/cs.PL/0204015

    在之前的工作中,我们介绍了基础知识和支持 用于战略规划的组合库。这是一个成语 基于功能策略概念的通用编程: 一流的泛型函数,不能只应用于 任何类型,但也允许泛型遍历到子项和 可以使用特定于类型的行为进行自定义。

    本文旨在为实践中的函数式程序员提供 在制定自己的战略计划时提供务实的指导。我们 从用户的角度呈现基本原理和支持, 我们启动了一个战略设计模式目录。这些设计 模式旨在巩固战略规划专业知识 可访问的表格。

    在软件开发中融入功能设计模式
    http://essay.utwente.nl/631/

    本论文提出了一种函数式合并的方法 软件开发过程中的设计模式。的目标 方法是使功能和技术设计人员能够做出更多 在不同阶段有效使用功能设计模式 发展。该方法不仅专注于功能设计,而且 范围从获取一直到维护。

    【讨论】:

    【解决方案2】:

    设计模式不是关于特定的语言或编程范式,而是关于更高级别的软件设计及其重用。

    如今看到的大多数示例都与 OOP 相关,因为这是目前最常用的编程范式。

    查看this SO 问题的答案(OOP 和设计模式有什么关系?)。

    从这个问题的其他答案可以看出,设计模式存在于 OOP 之外......

    【讨论】:

      【解决方案3】:

      设计模式通常可以指针对反复出现的问题的经过验证的解决方案。这不限于一种编程范式。

      【讨论】:

        【解决方案4】:

        绝对不是。它不必与面向对象 (OOP) 绑定。

        使用面向方面编程实现的设计模式:

        事实上,可以使用面向方面的编程 (AOP) 将这些模式注入到对象模型中,而不会侵入您的领域模型。使用AspectJ查看此示例

        另一个使用 AspectJ 在 AOP 中实现设计模式的链接,它在 AOP 中实现了来自 GoF 的多种模式:Design Pattern Implementations using Aspect-Oriented Programming

        【讨论】:

          【解决方案5】:

          在过去,我制作了一个在软件开发的几个环境中使用的模式目录。这是该目录的部分列表。希望它可以产生想法

          完整图片在这里:http://rearchitect.files.wordpress.com/2006/01/taxonomy.png

          alt text http://rearchitect.files.wordpress.com/2006/01/taxonomy.png

          【讨论】:

          • 这两个链接都不再起作用了。您对这些还有其他参考吗?
          【解决方案6】:

          Organizational Patterns of Agile Software Development(关于创建开发团队和分配角色的模式)

          【讨论】:

          • 标题中有一条线索——组织模式不是软件设计模式
          • @Pete Kirkham - 这些书是设计软件开发团队的模式。我试图说明的一点是,“模式”是一种提出一般问题解决方案的方式:并不特定于特定的编程语言或编程风格。
          • “组织模式”学科来自人类学,描述反复出现的行为结构,“设计模式”学科来自架构,描述特定问题的可重复解决方案。 (或者你还会发布一本“编织图案”的书吗?)
          • @Pete Kirkham - 不,不是来自针织或人类学:它们被称为“模式”(设计模式),因为本书的主题是使用en.wikipedia.org/wiki/Pattern_language 编写的——例如名称、问题背景(力)、解决方案(解决方案)、基本原理、适用性(包括何时不使用)、示例和相关模式。
          • 模式语言的使用远远超出了设计模式。
          猜你喜欢
          • 1970-01-01
          • 2013-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-29
          • 2011-04-12
          • 1970-01-01
          相关资源
          最近更新 更多