-
第一章软件设计模式体系结构概述
随着软件规模的扩大、需求的不断变化,如何写出具有兼具可扩展性、可复用性、可维护性、可靠性、安全性、可伸缩性的优雅的程序是我们需要解决的问题。本章内容为软件体系结构概论及软件设计模式及遵循原则。
-
●1.1软件体系结构引言
本节先从软件危机谈起,继而讲解软件生命周期、软件系统设计的目标和维护、复用的相关知识。
-
●1.2设计模式及遵循原则
对于软件开发人员,在软件开发过程中,面临的一般问题的解决方案就是设计模式 。设计模式代表了最佳的实践,是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的宝贵经验,是解决问题的思路。本节先从模式谈起,继而讲解软件设计模式、设计模式分类和设计模式要遵循的原则(SOLLID Core)。
-
第二章创建型_简单工厂工厂方法抽象工厂
本章开始我们将学习创建型模式。从创建型模式的概念、分类及应用等入手,进而引出工厂模式及其三种形态——简单工厂(Simple Factory)模式、工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式。
-
●2.1简单工厂
简单工厂模式,又叫静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。本节给出简单工厂模式的定义并结合具体实例和应用讨论简单工厂模式的优缺点。
-
●2.2工厂方法模式
为克服简单工厂方法模式的缺点,改善工厂类的结构,将简单工厂方法模式中单一的工厂类改写为一个层次类来解决问题。本节给出工厂方法模式的定义,并结合实例讨论工厂方法模式的具体应用。最后给出简单工厂模式与工厂方法模式的区别。
-
●2.3抽象工厂模式引入
本节从工厂方法模式引出抽象工厂模式及其定义。结合实例讨论抽象工厂模式的优缺点。
-
第三章创建型_单多例构建者原型
本章学习单多例构建者原型。主要包括单多例模式、生成器模式以及原型模式。
-
●3.1单例多例
本节讨论单多例模式的概念,特性以及几种实现方式。
-
●3.2创建型_生成器
本节讨论生成器(建造者)模式的概念与机制,并通过实例给出实现方式。
-
●3.3创建型_原型
本节从从银行电子账单例子引入原型模式,通过应用实例给出原型模式的两种模式及其对比。最后给出原型模式的优缺点和应用注意事项。
-
第四章结构型_适配器
本章开始学习设计模式中的结构型模式。其中适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。本章学习适配器模式。
-
●4.1结构型_适配器
本节从结构型设计模式引出适配器模式。主要学习类适配器(Adapter)模式及实例、对象的适配器模式及实例、Iterator与Enumeration。
-
第五章结构型_合成装饰模式
本章学习装饰合成模式
-
●5.1结构型_装饰
本节学习装饰模式,包括装饰模式的结构和模式实现,进而结合装饰模式实例学习装饰模式的优缺点。
-
●5.2结构型_组合
本节学习组合模式,通过文件系统实例引出安全式和透明式的合成模式及其结构。
-
第六章结构型_代理享元模式
本章学习代理享元模式
-
●6.1结构型_代理
本节学习代理模式,包括代理模式的概念、种类及结构。通过实例学习智能引用代理模式、引入代理角色、虚拟代理、动态代理、代理模式优缺点及与其它模式的区别。
-
●6.2结构型_享元
本节通过学习报考系统引入享元模式,进而学习享元模式的概念、类图、状态、使用方法、种类以及实例操作。
-
第七章结构型_外观桥梁过滤模式
本章学习门面(外观Facade)模式与桥梁(桥接Bridge)模式
-
●7.1结构型_外观
本节讲述门面(外观Facade)模式的相关概念,通过实例重点讲述实现方法和Session门面模式。
-
●7.2结构型_桥梁
本节介绍桥梁(桥接Bridge)模式,包括桥梁(桥接Bridge)模式的结构、应用。通过实例说明桥梁(桥接Bridge)模式并与Java语言的Peer结构联系。
-
第八章行为型_责任链命令解释器模式
本章开始学习设计模式中的行为型模式。首先介绍责任链模式、命令模式以及解释器模式。
-
●8.1行为型_责任链
本节通过企业员工请假例子给出责任链模式的定义。继而讨论责任链模式的实现,优缺点、使用现状和实例化演示。
-
●8.2行为型_命令
本节学习命令模式的定义相关概念、使用实例,优缺点以及注意事项。
-
●8.3行为型_解释器
本节学习解释器模式的定义相关概念、优缺点以及实例化探究。
-
第九章行为型_迭代器备忘录观察者模式
本章学习迭代器模式、备忘录模式以及观察者模式。
-
●9.1行为型_迭代器
在程序设计过程中,经常会用到各种各样的容器,如数组、链表、集合、映射等。在容器的各种操作中,元素遍历是最常见的操作之一。我们需要一种访问一种聚合对象的各个元素,而不暴露其元素的表示的方法。此种方法叫迭代器。本节我们将学习迭代器模式的概念、分类、优缺点以及使用注意事项。
-
●9.2行为型_备忘录
面向对象程序设计,对象通常封装了其部分或所有的状态信息,使得其状态不能被其他对象访问,也就不可能在该对象之外保存其状态,而暴露其内部状态又将违反原则,可能有损系统的可靠性和可扩展性。备忘录模式是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。本节我们将学习备忘录模式的概念、优缺点、多备份的备忘录以及使用注意事项。
-
●9.3行为型_观察者
《孙子兵法》,知己知彼、百战不殆。知彼,安插间谍。当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。本节学习观察者模式的概念、优缺点以及使用注意事项。
-
第十章行为型_状态策略访问者模式
本章学习状态模式、策略模式以及访问者模式。
-
●10.1行为型_状态
本节通过电梯实例引出状态模式。重点学习状态模式的概念、优缺点以及使用注意事项。
-
●10.2行为型_策略
把行为与环境分割开来,环境类负责维持和查询行为类,各种算法则在具体策略类(ConcreteStartegy)中提供,由于算法和环境独立,算法的增减、修改不会影响环境和客户端,这就是我们今天讲的策略模式。本节学习策略模式的概念、优缺点以及使用注意事项。
-
●10.3行为型_访问者
若需要针对一个包含不同类型元素的聚集采取某种操作,而操作的细节根据元素的类型不同而有所不同时,就会出现必须对元素类型做类型判断的条件语句。我们需要找一个种办法,它把数据结构和作用于结构上的操作的耦合解脱开。——访问者模式。本节学习访问者模式的概念、单/双分派、优缺点以及使用注意事项。
-
第十一章行为型_中介者空对象模板模式
本章学习中介者模式和模板模式。
-
●11.1行为型_中介者
通过中介者模式,我们可以将复杂关系的网状结构变成结构简单的以中介者为核心的星形结构,每个对象不再和它与之关联的对象直接发生相互作用,而是通过中介者对象来另一个对象发生相互作用。本节学习中介者模式的定义相关概念、优缺点以及使用注意事项。
-
●11.2行为型_模板方法
面向对象程序设计过程中,会遇到这种情况:设计一个系统时知道了算法所需要的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。具体的办理业务延迟到子类实现,这样的例子还有许多,如起床、吃饭、做事、睡觉,其中做事内容每天不同,将这些规定了流程或格式的实例定义成模板,允许使用者根据自己的需求云更新它。本节学习模板模式的定义相关概念、优缺点以及使用注意事项。
-
第十二章软件体系结构
软件设计主要针对需求分析过程中得到的软件需求规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。本章内容包括软件体系结构概论、软件体系结构风格、分布式系统体系结构、Web服务软件体系结构、其他现代体系结构、体系结构的设计开发以及体系结构评估。
-
●12.1软件体系结构概论
随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多。对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。本节学习软件体系结构的定义、研究意义、发展以及应用现状。
-
●12.2软件体系结构风格
本节学习软件体系结构风格的定义以及多种结构风格的构建和优缺点。
-
●12.3分布式系统体系结构
所有大型计算机系统现在都是分布式系统。与所有的系统组件在一台单独的计算机上执行的集中式系统相反,分布式系统中包括有许多台计算机,是“一个独立计算机的集合体,但给用户的感觉却是面对一个独立的系统。”由于系统组件可能运行在独立管理的计算机上以及组件间要经过网络通信,因此,分布式系统的设计中有许多特殊问题需要予以考虑。本节学习分布式系统的概念、中间件及多种分布式构件(组件)体系结构。
-
●12.4Web服务软件体系结构
20世纪90年代,网络技术的发展彻底改变了信息交流的方式,客户计算机可以通过访问其机构以外的远程服务器来获得信息。但是,这种访问是通过Web浏览器进行的,要想使用其他程序来对信息库进行直接访问是不实际的。也就是说,在服务器之间进行随意的连接(比如一个程序从不同的提供商查询多个目录)是不能做到的。为了解决这个问题,人们提出了Web服务的概念。本节先讲解Web服务的相关知识从而引出面向服务的体系结构的概念、进而学习服务作为可复用的组件、服务实现和部署和服务测试相关知识。
-
●12.5其他现代体系结构
本节简要介绍一些其他现代体系结构。如:MVC软件体系结构、基于网络的软件体系结构、网格计算软件体系结构、电子商务模型、云计算体系结构和典型的云计算平台。
-
●12.6体系结构的设计开发
本节首先给出体系结构的软件开发的有关概念。然后深入学习ABSD方法的步骤及方法。
-
●12.7体系结构评估
本节首先给出体系结构评估的原因、方法、时机、参与者和结果的概念。然后深入讨论ATAM评估方法、SAAM评估方法、ARID评估方法以及三者的比较。