一段时间以来,软件工程师在开发各种软件程序时都面临着一个共同的问题。没有标准来指导他们如何设计和进行。当一个新成员(有经验的或没有经验的;这无关紧要)加入团队,并被指派从头开始做某事或修改现有产品中的某事时,这个问题变得很重要。如前所述,由于没有标准,要熟悉现有的产品需要付出很大的努力。设计模式简单地解决了这个问题,并为所有开发人员提供了一个通用的平台。我们应该记住,这些模式旨在应用于面向对象的设计中,目的是重用。1994-1995年,四位是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides出版了可重用面向对象软件的设计模式元素(Addison Wesley,1995),他们在其中提出了软件开发的设计模式概念。这些被称为“四人帮”,他们引入了23种模式,这些模式是由经验丰富的软件工程师在很长一段时间内开发出来的。因此,现在如果任何新成员加入开发团队,并且他知道新系统遵循一些特定的设计模式,他可以在很短的时间内与团队的其他成员一起积极参与开发过程。现实生活设计模式的第一个概念来自建筑设计师克里斯托弗·亚历山大。根据他的经验,他开始了解一些常见的问题。然后他试图以一种统一的方式用相关的解决方案来解决这些问题。人们认为,软件行业之所以掌握了这些概念,是因为软件工程师还可以将他们的产品应用程序与这些建筑应用程序联系起来。
GoF向我们保证,尽管模式是为建筑物和城镇描述的,但同样的概念也可以应用于面向对象设计中的模式。我们可以用对象和接口来代替墙和门的原始概念。这两种模式的共同点是,在核心部分,这两种模式都是在某种上下文中解决问题的解决方案。在1995中,用C++讨论了原始概念。Sun Microsystems于1995年发布了其第一个公共实现Java1.0,然后经历了各种变化。所以,关键是:Java在当时是相对较新的。在这本书中,我们将尝试用Java检查这些核心概念。这本书是用java编写的,但是,如果你熟悉任何其他流行的编程语言(C++,C++等),你也可以很容易地理解这个概念,因为我已经把他的设计模式和如何用基本java语言构造来实现这个概念作为他的主要焦点。再次重申:他选择了简单易懂的例子来帮助你轻松地发展这些概念。
GoF定义:定义对象之间的一对多依赖关系,这样当一个对象更改状态时,它的所有依赖项都会自动通知和更新。
在这种模式中,有许多观察者(对象)正在观察一个特定的主体(对象),观察者基本上感兴趣,当主体内部发生变化时,他们希望得到通知。所以,他们注册了这个主题。当他们对这个主题失去兴趣时,他们只是从主题中注销。有时这种模型也被称为发布者-订阅者模型。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !