我选了两本HEAD第一本书,OOAD和Design Patterns。当我开始阅读设计模式时,我感到非常困惑。 以下是我的基本疑问:
设计模式是否仅适用于面向对象的设计?对我来说,DP似乎只能在OOAD
设计模式是(OO设计中使用的一组工具)的一部分吗?特别是我想要问的是,OOAD是更大的目标,而设计模式有助于实现目标
在阅读了前4或5个模式之后,看起来如果某个身体是一个优秀的OO设计师,他会自动设计使用这些模式。
我真的很困惑
答案 0 :(得分:1)
作为问题的可重用解决方案,模式可以在许多领域中找到。使用模式语言来传达这些解决方案的想法源于体系结构领域(请参阅A Pattern Language),但后来已成功应用于软件工程。即使在软件工程领域内,模式也存在于不同的层面,例如implementation patterns和architectural patterns for enterprise applications。
推广软件设计模式概念的开创性书籍的标题,Design Patterns - Elements of Reusable Object-Oriented Software,确实表明所描述的模式仅适用于面向对象的设计(我认为不是作者的意图)。一些创建模式专门处理对象,但几乎所有其他模式都可以用任何非面向对象的语言实现。有关C中的示例,请参阅state pattern,strategy pattern和observer pattern。
答案 1 :(得分:0)
设计模式是问题的可重用解决方案 - 原始设计模式本身非常清楚地表明它们并非特定于任何一种语言或范例。
例如 - 甚至还有针对SQL的设计模式书 - 一种非常在OOP之外的声明性语言。
设计模式倾向于比一个类更高级别的设计 - 它们往往是许多相关的类,它们共同实现某个设计目标。因此(以及可重用的解决方案),它们绝对是一个很好的工具 - 从它们中获得的价值在创建设计时更少(模式应该从代码中出现,而不是编码到) ,但他们的名字 - 他们促进沟通。如果您正在与某人谈论单身人士或门面,如果他们熟悉设计模式,他们就会很清楚您所谈论的内容以及设计和目标。
答案 2 :(得分:0)
从我的理解来看,设计模式并不仅限于面向对象的系统。如果我们注意到单词,Design和Patterns用于不同的目的.Pattern是一个可重复的活动,它与一个上下文耦合,当你应用它时设计活动的理论,它成为设计模式。它是在一定背景下的经过测试的设计解决方案。 OOAD有一个更大的保护伞,然后设计模式,设计模式就像字典中的单词,而OOAD作为字母表,你用来创建单词。 OOAD理论已被用于创建这些设计模式。