1

我拿起了两本 HEAD 第一本书,OOAD 和设计模式。当我开始阅读设计模式时,我很困惑。以下是我的基本疑问:

  1. 设计模式是否仅适用于面向对象的设计?对我来说,DP似乎只能在OOAD中应用

  2. 设计模式是(一组用于)OO 设计的一部分吗?具体来说,我想问的是,OOAD 是否是更大的目标,而设计模式有助于实现目标

在阅读了前 4 或 5 个模式之后,看起来如果某个人是一名优秀的 OO 设计师,他会自动使用这些模式进行设计。

我真的很困惑

4

3 回答 3

1

模式作为问题的可重用解决方案,可以在许多领域中找到。使用模式语言来传达这些解决方案的想法起源于架构领域(请参阅A Pattern Language),但后来成功地应用于软件工程。即使在软件工程领域中,模式也存在于不同的层次上,例如企业应用程序的实现模式架构模式

普及软件设计模式概念的开创性书籍的标题,设计模式 - 可重用的面向对象软件的元素确实表明所描述的模式仅适用于面向对象的设计(我认为这不是作者的意图) . 一些创建模式专门处理对象,但几乎所有其他模式都可以用任何非面向对象的语言来实现。有关 C 中的示例,请参阅状态模式策略模式观察者模式

于 2012-08-12T20:51:19.640 回答
0

设计模式是可重用的问题解决方案——最初的设计模式书本身非常清楚地表明它们并不特定于任何一种语言或范式。

例如 - 甚至还有 SQL 的设计模式书 - 一种在 OOP 之外的声明性语言。

设计模式往往是比一个类更高层次的设计——它们往往是许多相关的类,它们共同实现了某个设计目标。因此(并且作为可重用的解决方案),它们绝对是一个很好的工具 - 从它们获得的价值在创建设计时考虑到它们(模式应该从代码中出现,而不是编码到),但有它们的名称 - 它们方便沟通。如果您正在与某人谈论单例或外观,如果他们熟悉设计模式,他们将对您在谈论的内容以及设计及其目标有一个很好的了解。

于 2012-08-12T18:34:26.130 回答
0

根据我的理解,设计模式不仅仅局限于面向对象的系统。如果我们注意到这些词,设计和模式服务于不同的目的。模式是一个可重复的活动,它与上下文耦合,当你将这个理论应用于设计时活动它成为设计模式。它是在特定上下文中经过测试的设计解决方案。OOAD 比设计模式拥有更大的保护伞,设计模式就像字典中的单词,而 OOAD 用作字母表,您可以使用它来创建单词。OOAD 理论已被用于创建这些设计模式。

于 2017-03-06T12:41:21.107 回答