网站内容设计(后面各章学习的基础,从整体上介绍软件设计模式的产生背景)

优采云 发布时间: 2021-12-15 23:34

  网站内容设计(后面各章学习的基础,从整体上介绍软件设计模式的产生背景)

  本节是学习后续章节的基础。整体介绍了软件设计模式的概念和特点,软件设计模式的基本要素,并介绍了GoF的23种设计模式。软件设计模式产生的背景“设计模式”一词最初并没有出现在软件设计中,而是用于架构设计中。

  1977年,美国著名建筑师、加州大学伯克利分校环境结构中心主任克里斯托弗·亚历山大在其著作《A Pattern Language: Towns Building Construction》(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计提出了253个城镇、街区、房屋、花园和房间设计的基本模型。

  1979年他的另一本经典著作《The Timeless Way of Building》(The Timeless Way of Building)进一步强化了设计模式的思想,为后来的建筑设计指明了方向。

  1987 年,Kent Beck 和 Ward Cunningham 首次将 Christopher Alexander 的模式应用到 Smalltalk 中图形用户界面的生成中,但并没有在软件行业造成任何问题。注意。

  直到 1990 年软件工程界才开始讨论设计模式的话题,后来又举办了几次设计模式的研讨会。

  1995年,ErichGamma、Richard Helm、Ralph Johnson、John Vlissides等四位作者共同出版了《Design Patterns: Elements of Reusable Object-Oriented Software》(Design Patterns: Elements of Reusable Object-Oriented Software)一书。在本教程中,收录 23 种设计模式,它们是设计模式领域的里程碑,引领了软件设计模式的突破。这四位作者在软件开发领域也被匿名称为“四人帮”(GoF)。

  直到今天,窄设计模式是本教程介绍的 23 种经典设计模式。软件设计模式的概念和含义与很多软件设计模式的定义有关,有的从模式的特性来解释,有的从模式的作用来解释。本教程给出的定义为大多数学者所认可,从以下两个方面进行解释。1. 软件设计模式的概念软件设计模式(Software Design Pattern),也称设计模式,是一套被反复使用,为大多数人所熟知的代码设计经验。它被分类和编目。它描述了软件设计过程中一些经常出现的问题以及解决这些问题的方法。换句话说,是一系列解决具体问题的套路,是前人代码设计经验的总结,具有一定的通用性,可以反复使用。其目的是提高代码的可重用性、代码的可读性和代码的可靠性。2. 学习设计模式的意义 设计模式的本质是面向对象设计原则的实际应用。是对类的封装、继承、多态,以及类的关联和组合关系的全面理解。正确使用设计模式有以下优点。其目的是提高代码的可重用性、代码的可读性和代码的可靠性。2. 学习设计模式的意义 设计模式的本质是面向对象设计原则的实际应用。是对类的封装、继承、多态,以及类的关联和组合关系的全面理解。正确使用设计模式有以下优点。其目的是提高代码的可重用性、代码的可读性和代码的可靠性。2. 学习设计模式的意义 设计模式的本质是面向对象设计原则的实际应用。是对类的封装、继承、多态,以及类的关联和组合关系的全面理解。正确使用设计模式有以下优点。以及类的关联和组合关系。正确使用设计模式有以下优点。以及类的关联和组合关系。正确使用设计模式有以下优点。

  当然,软件设计模式只是一个指南。在具体的软件开发中,必须根据所设计的应用系统的特点和要求进行适当的选择。对于简单的程序开发,编写一个简单的算法比引入某种设计模式更容易。但是对于大型项目的开发或者框架设计,使用设计模式来组织代码显然更好。软件设计模式的基本元素 软件设计模式使人们更容易、更方便地重用成功的设计和架构。它通常收录以下基本要素:模式名称、别名、动机、问题、解决方案、效果、结构、模式角色、伙伴关系、实现方法、适用性、已知应用程序、例程、模式扩展和相关模式,其中最关键的元素包括以下4个主要部分。1. 模式名称 每个模式都有自己的名称,通常用一两个词来描述,可以根据模式的问题、特点、解决方案、功能和效果来命名。模式名称(PatternName)帮助我们理解和记住模式,也方便我们讨论自己的设计。2. 问题 问题描述了该模式的应用环境,即何时使用该模式。它解释了设计问题和问题的原因和后果,以及必须满足的一系列先决条件。3. 解决方案模型(Solution)的问题的解决方案包括设计的组件,它们之间的关系,以及各自的职责和协作方式。因为模式就像一个模板,可以应用于很多不同的场合,所以解决方案并没有描述具体具体的设计或实现,而是提供了对设计问题的抽象描述以及如何使用具有一般意义的元素组合(类或对象的组合)来解决这个问题。4. 效果描述了模式的应用效果和使用模式时应该权衡的问题,即模式的优缺点。主要是衡量时间和空间,以及这种模式对系统灵活性、可扩展性和可移植性的影响,还要考虑它的实现问题。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线