课程简介
作为为一门高级课程,若内容缺乏实务便易流于抽象与空泛。 本课程除了深入剖析各种典型的设计模式之原理与结构外, 同时会抽取大量知名程序库中的设计模式,利用其源码辅助并加强原理讲解。并且结合讲师大量实际项目案例进行分析. 这种方式对于设计模式的学习有着极大效果。 与其它的仍然沿用传统模式目录方式逐一讲述每一模式的意图,结构,适应性等的培训和图书完全不同.
目标收益
课程1/3的时间介绍设计模式思想和原理,1/3时间案例,并且要求学员组合成小组进行现场设计. 最后1/3时间再介绍该案例的设计过程,讲师带领大家一起对设计结果进行分析,指出不”和谐”的地方,通过逐步运用模式,改善设计。
培训对象
该课程适合各类 IT/软件企业和研发机构的软件架构师、软件设计师、程序员。特别能够带着设计模式实践时的困惑和问题,效果最佳. 到时可以与讲师PK讨论,这样对你帮助会更大,收获也会更多.本课程不是设计模式入门级别课程, 不会目录式介绍每一模式的详细细节, 因此需要学员课前做好相关准备,最好已经具备模式概念和常见模式的基本知识。最好课前可以简单预习。
课程大纲
第一篇: 设计模式-设计原理与面向对象设计思维 第1单元 为什么需要设计模式 |
内容一:软件设计模式---模式到底是什么?价值在哪里? 1.什么是模式 2.为什么需要设计模式? 难道就为了面试吗? 3.设计模式能够给我们带来什么? 4.设计模式学习面临的困难和解决思路 5.从了解模式到正确应用模式 1.练习---某电信业务系统,在使用模式前解决方案 和 使用模式后的对比 内容二:软件设计模式本质—你真的知道模式背后的原理吗? 1.发现变化进行封装变化 2.把变化与不变必须分离 3.针对接口的编程,而不是针对实现 4.组合优于继承 1.练习—某电信认证项目设计分析,分析模式背后的本质 内容三:什么是好的设计-----难道使用设计模式就是好的设计吗? 1.什么是好的设计? 2.难道不使用设计模式就是坏的设计吗? 3.为什么需求变化总是使你痛苦? 和你的设计有关系吗? 4.好的系统设计应该有如下的性质:可扩展性、灵活性、可插入性。 5.设计模式可以使你的设计更灵活,更易复用,更具可扩展性 练习—某电信项目4种设计方案的对比, 那种更合适?多种方案的对比 |
第2单元 面向对象设计思维与原理 |
内容一:面向对象思维是模式基础 1.面向对象分析与设计的本质 2.面向对象设计思维与面向过程设计思维—职责驱动设计 3.抽象本质 4.封装本质 5.继承本质 6.多态本质 7.面向对象常见的错误认识—思考OO带来的价值 8.为什么学习设计模式需要面向对象思维 9.从面向对象到模式到再到真正的面向对象 10.练习—某ERP项目, 使用面向对象设计和过程化设计 PK,,难道面向对象就一定是最优的? 你真正理解面向对象吗? 面向对象到底真正有哪些好处, 不要人云亦云 ! 内容二:面向对象设计原则(principles) 1.依赖倒置原则(DIP) 2.开放封闭原则(OCP) 3.单一职责原则(SRP) 4.Liskov 替换原则(LSP) 5.接口隔离原则(ISP) 6.练习—每组原则,分别通过案例进行分析,为什么需要使用原则进行考虑 |
第二篇: 设计模式精讲------创建型 第3单元 创建型模式 |
内容一:创建型模式(principles) 1.简单创建型工厂 2. Factory Method(工厂方法) 3. Abstract Factory(抽象工厂) 4. Builder(生成器) 5. Prototype(原型) 6. Singleton(单件) 7.创建型模式的讨论 |
第4单元 创建型模式精讲 |
内容一:简单工厂模式 1.简单工厂模式概述 2.简单工厂模式结构与实现 3.简单工厂模式结构 4.简单工厂模式实现 5.简单工厂模式应用实例 6.关于创建对象与使用对象 7.简单工厂模式的简化 8.简单工厂模式优/缺点与适用环境 9.简单工厂模式优点 内容二:工厂方法模式 1.工厂方法模式概述 2.工厂方法模式结构与实现 3.工厂方法模式结构 4.工厂方法模式实现 5.工厂方法模式应用实例 6.工厂方法模式优/缺点与适用环境 7.工厂方法模式优点 内容三:抽象工厂模式 1.产品等级结构与产品族 2. 抽象工厂模式概述 3. 抽象工厂模式结构与实现 4. 抽象工厂模式结构 5. 抽象工厂模式实现 6. 抽象工厂模式应用实例 内容四:单例模式模式 1.单例模式概述 2. 单例模式结构与实现 3. 单例模式结构 4. 单例模式实现 5. 单例模式应用实例 6. 饿汉式单例与懒汉式单例 7. 单例模式优/缺点与适用环境 8. 单例模式优点 内容五:其他创建型模式 1.Builder(生成器)模式概述 2.Builder(生成器)模式结构与实现 3.Prototype(原型)模式概述 4.Prototype(原型)式结构与实现 内容六:创建型模式的应用案例分析 1.创建型的应用案例分析 |
第三篇: 设计模式精讲------结构性型 第5单元 结构型模式 |
内容一:结构型模式(principles) 1.Adapter(适配器)—类对象结构型模式 2.Bridge(桥接)—对象结构型模式 3.Composite(组成)—对象结构型模式 4.Decorator(装饰)—对象结构型模式 5.FACADE(外观)—对象结构型模式 6.Flyweight(享元)—对象结构型模式 7.Proxy(代理)—对象结构型模式 8.结构型模式的讨论 9.Adapter与Bridge对比与分析 10.Composite、Decorator与Proxy 对比与分析 |
第6单元 结构型模式精讲 |
内容一:适配器模式 1.适配器模式概述 2.对象适配器和类适配器 3. 适配器模式结构与实现 4. 适配器模式应用实例 5. 缺省适配器模式 6. 双向适配器 7. 适配器模式优/缺点与适用环境 内容二:组合模式 1.组合模式概述 2.组合模式结构与实现 3.组合模式应用实例 4.透明组合模式与安全组合模式 5.组合模式优/缺点与适用环境 6.组合模式优点 7.组合模式缺点 8.组合模式适用环境 内容三:装饰器模式 1.装饰模式概述 2.装饰模式结构与实现 3.装饰模式应用实例 4.透明装饰模式与半透明装饰模式 5.装饰模式优/缺点与适用环境 内容四:Facde外观模式 1.外观模式概述 2.外观模式结构与实现 3.外观模式应用实例 4.抽象外观类 5.外观模式优/缺点与适用环境 6.外观模式适用环境 内容五:结构性模式应用案例 1.结构型概述应用案例 |
第四篇: 设计模式精讲------行为型 第7单元 行为型型模式 |
内容一:行为型模式(principles) 1.CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型模式 2.COMMAND(命令)—对象行为型模式 3. INTERPRETER(解释器)—类行为型模式 4. ITERATOR(迭代器)—对象行为型模式 5. MEDIATOR(中介者)—对象行为型模式 6.MEMENTO(备忘录)—对象行为型模式 7.OBSERVER(观察者)—对象行为型模式 8.STATE(状态)—对象行为型模式 9.STRATEGY(策略)—对象行为型模式 10.TEMPLATE METHOD(模板方法)—类行为型模式 11. VISITOR(访问者)—对象行为型 模式 12. 行为模式的讨论 |
第8单元 行为型模式精讲 |
内容一:代理模式 1.代理模式概述 2.代理模式结构与实现 3.代理模式应用实例 4. 远程代理 5. 虚拟代理 6. Java动态代理实现 7. 代理模式优/缺点与适用环境 内容二:职责链模式 1.职责链模式概述 2.职责链模式结构与实现 3.职责链模式应用实例 4.纯与不纯的职责链模式 5.职责链模式优/缺点与适用环境 内容三:命令模式 1.命令模式概述 2.命令模式结构与实现 3.命令模式结构 4.命令模式实现 5.命令模式应用实例 6.实现命令队列 7.记录请求日志 8.实现撤销操作 9.宏命令 10.命令模式优/缺点与适用环境 内容四:观察者模式 1.观察者模式概述 2.观察者模式结构与实现 3.观察者模式应用实例 4.JDK对观察者模式的支持 5.观察者模式与Java事件处理 6.观察者模式与MVC 7.观察者模式优/缺点与适用环境 内容五:状态与策略模式 1.状态模式概述 2.状态模式结构与实现 3.状态模式应用实例 4. 共享状态 5. 使用环境类实现状态转换 6. 状态模式优/缺点与适用环境 7.策略模式概述 8.策略模式结构与实现 9.策略模式应用实例 10.策略模式优/缺点与适用环境 内容六:模板方法模式 1.模板方法模式概述 2.模板方法模式结构与实现 3.模板方法模式应用实例 4.钩子方法的使用 5.模板方法模式优/缺点与适用环境 |
第五篇: 设计模式对比 第9单元 设计模式对比 |
内容一:模式大PK, 通过对比了解设计模式的细节 1.创建型模式讨论 a)简单工场 工厂方法 抽象工场 b)Abstract Factory,builder,Prototype 模式 c)单例模式 2.行为型模式 a)Adapter与Bridge b)Composite、Decorator与Proxy c)Façade模式 与 Adapter模式 /Proxy模式 d)Composite 与Iterator模式 3.结构型模式 a)封装变化-Strategy/State/ Iterator模式 b)封装结构---Mediator模式与Facade模式 c)对象作为参数-- Visitor/Command/Mementor d)通信应该被封装还是被分布- Mediator和Observer e)对发送者和接收者解耦-Command模式与职责链模式 将实践中常容易混淆或常常联合使用的几个模式放在一组讨论,对比分析,讲解思想。如何发现、应用更多模式。通过对“相似或相关的设计模式”的对比分析,加深理解,是避免“模式误用”的好方法。 |
第六篇: 设计模式应用案例 第10单元 设计模式应用案例 |
内容一:用模式思考系统设计 1.基于模式的设计系统 2.用模式思考的过程 3.模式的应用层次和组合应用模式 4.基于模式的方法和步骤 内容二:练习案例- Log子系统的设计 1.介绍项目需求情况,进行设计 2.通过重构逐步实现设计模式 3.Framework 设计思想—好莱坞原则 4.学习设计模式(Factory Method, Template Method, Composite, Chain of Responsibility ) |
第11单元 设计模式应用策略 有时放弃模式更值得学习 |
内容一:重构到模式- 1.设计坏味道概述 2.重构思想 3.理解如何结合重构和模式; 4.用模式导向的重构(pattern-directed refactoring)改善既有代码的设计; 5.找出需要进行模式导向重构的代码段; 6.了解为什么使用模式来改善既有的设计要优于在新的设计早期使用模式。 7.一组坏味 (也就是问题),表示需要进行模式导向的重构; 8.实现同一模式的不同方式的示例; 9.什么时候应该通过重构实现模式、趋向模式以及去除模式给出建议。 10.常见设计模式的重构演化的过程 7.练习—通过一个大型电信系统案例分析, 解决如何通过重构引入设计模式 11. 内容二:案例- 遗留系统如何使用设计模式 1.拒绝退化—“首先不要伤害” 2.关注点分离 3.. 通过案例分析,如何修改遗留代码,而不破坏现有系统代码结构,引入设计模式 8.练习—通过一个系统案例分析, 如何在维护遗留系统时, 通过分离制作, 关注点分离, 实现对遗留系统不伤害,从而引入设计模式 内容三:练习案例- 重构到模式 |
第七篇: 重构到设计模式 第12单元 重构到模式应用案例 通过重构实现模式改善既有的设计,往往优于在新的设计早期使用模式。 |
内容一:重构到模式- 1. 设计坏味道概述 2. 重构思想 3. 理解如何结合重构和模式; 4. 用模式导向的重构(pattern-directed refactoring)改善既有代码的设计; 5. 找出需要进行模式导向重构的代码段; 6. 了解为什么使用模式来改善既有的设计要优于在新的设计早期使用模式。 7. 一组坏味 (也就是问题),表示需要进行模式导向的重构; 8. 实现同一模式的不同方式的示例; 9. 什么时候应该通过重构实现模式、趋向模式以及去除模式给出建议。 10. 常见设计模式的重构演化的过程 A案例分析—通过一个大型电信系统案例分析, 解决如何通过重构引入设计模式 内容二:案例- 遗留系统如何使用设计模式 1. 拒绝退化—“首先不要伤害” 2. 关注点分离 3. 通过案例分析,如何修改遗留代码,而不破坏现有系统代码结构,引入设计模式 A案例分析—通过一个系统案例分析, 如何在维护遗留系统时, 通过分离制作, 关注点分离, 实现对遗留系统不伤害,从而引入设计模式 内容三:案例- 某电信管理子系统的设计 1. 介绍项目需求情况,进行设计 2. 通过重构逐步实现设计模式 3. Framework 设计思想—好莱坞原则 4. 学习设计模式(Factory Method, Template Method, Composite, Chain of Responsibility ) (“虽然软件的演化,利用重构从而得到模式”是有效应用设计模式的实践准则。本节以一些重构技巧来展示如何通过演化的方式来步步达至设计模式,从而帮助学员更好地掌握如何在软件设计中运用设计模式,发现更多设计模式。) |
第13单元 设计模式应用策略- 综合应用分析 |
内容一:大型系统的设计案例分析, 介绍如何预先应用模式,以及如何在第3版本重构时导入模式, 已经在后期维护时应用模式 1.××某省移动线路资源维护系统的背景介绍 2.系统需求分析 3.如何根据应用系统特点, 和变化与不变等原因,引入模式 4.根据应用功能,导入设计模式 5.第1版本上线时的系统设计分析 6.第1版本,系统设计时遗留的问题, 设计不足, 缺陷等分析 7.第2版本, 由于增加新功能导致的严重问题分析 8.系统出现很多设计不足 9.第3版本, 由于增加新功能导致的严重问题分析 10.系统开始引入重构,系统的坏味道, 以及重构,分析在重构是如何使用重构 11.分析第4版本的系统设计 系统在后续维护过程之中的, 设计情况。 以及如何在维护时期进行应用模式 |
第一篇: 设计模式-设计原理与面向对象设计思维 第1单元 为什么需要设计模式 内容一:软件设计模式---模式到底是什么?价值在哪里? 1.什么是模式 2.为什么需要设计模式? 难道就为了面试吗? 3.设计模式能够给我们带来什么? 4.设计模式学习面临的困难和解决思路 5.从了解模式到正确应用模式 1.练习---某电信业务系统,在使用模式前解决方案 和 使用模式后的对比 内容二:软件设计模式本质—你真的知道模式背后的原理吗? 1.发现变化进行封装变化 2.把变化与不变必须分离 3.针对接口的编程,而不是针对实现 4.组合优于继承 1.练习—某电信认证项目设计分析,分析模式背后的本质 内容三:什么是好的设计-----难道使用设计模式就是好的设计吗? 1.什么是好的设计? 2.难道不使用设计模式就是坏的设计吗? 3.为什么需求变化总是使你痛苦? 和你的设计有关系吗? 4.好的系统设计应该有如下的性质:可扩展性、灵活性、可插入性。 5.设计模式可以使你的设计更灵活,更易复用,更具可扩展性 练习—某电信项目4种设计方案的对比, 那种更合适?多种方案的对比 |
第2单元 面向对象设计思维与原理 内容一:面向对象思维是模式基础 1.面向对象分析与设计的本质 2.面向对象设计思维与面向过程设计思维—职责驱动设计 3.抽象本质 4.封装本质 5.继承本质 6.多态本质 7.面向对象常见的错误认识—思考OO带来的价值 8.为什么学习设计模式需要面向对象思维 9.从面向对象到模式到再到真正的面向对象 10.练习—某ERP项目, 使用面向对象设计和过程化设计 PK,,难道面向对象就一定是最优的? 你真正理解面向对象吗? 面向对象到底真正有哪些好处, 不要人云亦云 ! 内容二:面向对象设计原则(principles) 1.依赖倒置原则(DIP) 2.开放封闭原则(OCP) 3.单一职责原则(SRP) 4.Liskov 替换原则(LSP) 5.接口隔离原则(ISP) 6.练习—每组原则,分别通过案例进行分析,为什么需要使用原则进行考虑 |
第二篇: 设计模式精讲------创建型 第3单元 创建型模式 内容一:创建型模式(principles) 1.简单创建型工厂 2. Factory Method(工厂方法) 3. Abstract Factory(抽象工厂) 4. Builder(生成器) 5. Prototype(原型) 6. Singleton(单件) 7.创建型模式的讨论 |
第4单元 创建型模式精讲 内容一:简单工厂模式 1.简单工厂模式概述 2.简单工厂模式结构与实现 3.简单工厂模式结构 4.简单工厂模式实现 5.简单工厂模式应用实例 6.关于创建对象与使用对象 7.简单工厂模式的简化 8.简单工厂模式优/缺点与适用环境 9.简单工厂模式优点 内容二:工厂方法模式 1.工厂方法模式概述 2.工厂方法模式结构与实现 3.工厂方法模式结构 4.工厂方法模式实现 5.工厂方法模式应用实例 6.工厂方法模式优/缺点与适用环境 7.工厂方法模式优点 内容三:抽象工厂模式 1.产品等级结构与产品族 2. 抽象工厂模式概述 3. 抽象工厂模式结构与实现 4. 抽象工厂模式结构 5. 抽象工厂模式实现 6. 抽象工厂模式应用实例 内容四:单例模式模式 1.单例模式概述 2. 单例模式结构与实现 3. 单例模式结构 4. 单例模式实现 5. 单例模式应用实例 6. 饿汉式单例与懒汉式单例 7. 单例模式优/缺点与适用环境 8. 单例模式优点 内容五:其他创建型模式 1.Builder(生成器)模式概述 2.Builder(生成器)模式结构与实现 3.Prototype(原型)模式概述 4.Prototype(原型)式结构与实现 内容六:创建型模式的应用案例分析 1.创建型的应用案例分析 |
第三篇: 设计模式精讲------结构性型 第5单元 结构型模式 内容一:结构型模式(principles) 1.Adapter(适配器)—类对象结构型模式 2.Bridge(桥接)—对象结构型模式 3.Composite(组成)—对象结构型模式 4.Decorator(装饰)—对象结构型模式 5.FACADE(外观)—对象结构型模式 6.Flyweight(享元)—对象结构型模式 7.Proxy(代理)—对象结构型模式 8.结构型模式的讨论 9.Adapter与Bridge对比与分析 10.Composite、Decorator与Proxy 对比与分析 |
第6单元 结构型模式精讲 内容一:适配器模式 1.适配器模式概述 2.对象适配器和类适配器 3. 适配器模式结构与实现 4. 适配器模式应用实例 5. 缺省适配器模式 6. 双向适配器 7. 适配器模式优/缺点与适用环境 内容二:组合模式 1.组合模式概述 2.组合模式结构与实现 3.组合模式应用实例 4.透明组合模式与安全组合模式 5.组合模式优/缺点与适用环境 6.组合模式优点 7.组合模式缺点 8.组合模式适用环境 内容三:装饰器模式 1.装饰模式概述 2.装饰模式结构与实现 3.装饰模式应用实例 4.透明装饰模式与半透明装饰模式 5.装饰模式优/缺点与适用环境 内容四:Facde外观模式 1.外观模式概述 2.外观模式结构与实现 3.外观模式应用实例 4.抽象外观类 5.外观模式优/缺点与适用环境 6.外观模式适用环境 内容五:结构性模式应用案例 1.结构型概述应用案例 |
第四篇: 设计模式精讲------行为型 第7单元 行为型型模式 内容一:行为型模式(principles) 1.CHAIN OF RESPONSIBIL ITY(职责链) —对象行为型模式 2.COMMAND(命令)—对象行为型模式 3. INTERPRETER(解释器)—类行为型模式 4. ITERATOR(迭代器)—对象行为型模式 5. MEDIATOR(中介者)—对象行为型模式 6.MEMENTO(备忘录)—对象行为型模式 7.OBSERVER(观察者)—对象行为型模式 8.STATE(状态)—对象行为型模式 9.STRATEGY(策略)—对象行为型模式 10.TEMPLATE METHOD(模板方法)—类行为型模式 11. VISITOR(访问者)—对象行为型 模式 12. 行为模式的讨论 |
第8单元 行为型模式精讲 内容一:代理模式 1.代理模式概述 2.代理模式结构与实现 3.代理模式应用实例 4. 远程代理 5. 虚拟代理 6. Java动态代理实现 7. 代理模式优/缺点与适用环境 内容二:职责链模式 1.职责链模式概述 2.职责链模式结构与实现 3.职责链模式应用实例 4.纯与不纯的职责链模式 5.职责链模式优/缺点与适用环境 内容三:命令模式 1.命令模式概述 2.命令模式结构与实现 3.命令模式结构 4.命令模式实现 5.命令模式应用实例 6.实现命令队列 7.记录请求日志 8.实现撤销操作 9.宏命令 10.命令模式优/缺点与适用环境 内容四:观察者模式 1.观察者模式概述 2.观察者模式结构与实现 3.观察者模式应用实例 4.JDK对观察者模式的支持 5.观察者模式与Java事件处理 6.观察者模式与MVC 7.观察者模式优/缺点与适用环境 内容五:状态与策略模式 1.状态模式概述 2.状态模式结构与实现 3.状态模式应用实例 4. 共享状态 5. 使用环境类实现状态转换 6. 状态模式优/缺点与适用环境 7.策略模式概述 8.策略模式结构与实现 9.策略模式应用实例 10.策略模式优/缺点与适用环境 内容六:模板方法模式 1.模板方法模式概述 2.模板方法模式结构与实现 3.模板方法模式应用实例 4.钩子方法的使用 5.模板方法模式优/缺点与适用环境 |
第五篇: 设计模式对比 第9单元 设计模式对比 内容一:模式大PK, 通过对比了解设计模式的细节 1.创建型模式讨论 a)简单工场 工厂方法 抽象工场 b)Abstract Factory,builder,Prototype 模式 c)单例模式 2.行为型模式 a)Adapter与Bridge b)Composite、Decorator与Proxy c)Façade模式 与 Adapter模式 /Proxy模式 d)Composite 与Iterator模式 3.结构型模式 a)封装变化-Strategy/State/ Iterator模式 b)封装结构---Mediator模式与Facade模式 c)对象作为参数-- Visitor/Command/Mementor d)通信应该被封装还是被分布- Mediator和Observer e)对发送者和接收者解耦-Command模式与职责链模式 将实践中常容易混淆或常常联合使用的几个模式放在一组讨论,对比分析,讲解思想。如何发现、应用更多模式。通过对“相似或相关的设计模式”的对比分析,加深理解,是避免“模式误用”的好方法。 |
第六篇: 设计模式应用案例 第10单元 设计模式应用案例 内容一:用模式思考系统设计 1.基于模式的设计系统 2.用模式思考的过程 3.模式的应用层次和组合应用模式 4.基于模式的方法和步骤 内容二:练习案例- Log子系统的设计 1.介绍项目需求情况,进行设计 2.通过重构逐步实现设计模式 3.Framework 设计思想—好莱坞原则 4.学习设计模式(Factory Method, Template Method, Composite, Chain of Responsibility ) |
第11单元 设计模式应用策略 有时放弃模式更值得学习 内容一:重构到模式- 1.设计坏味道概述 2.重构思想 3.理解如何结合重构和模式; 4.用模式导向的重构(pattern-directed refactoring)改善既有代码的设计; 5.找出需要进行模式导向重构的代码段; 6.了解为什么使用模式来改善既有的设计要优于在新的设计早期使用模式。 7.一组坏味 (也就是问题),表示需要进行模式导向的重构; 8.实现同一模式的不同方式的示例; 9.什么时候应该通过重构实现模式、趋向模式以及去除模式给出建议。 10.常见设计模式的重构演化的过程 7.练习—通过一个大型电信系统案例分析, 解决如何通过重构引入设计模式 11. 内容二:案例- 遗留系统如何使用设计模式 1.拒绝退化—“首先不要伤害” 2.关注点分离 3.. 通过案例分析,如何修改遗留代码,而不破坏现有系统代码结构,引入设计模式 8.练习—通过一个系统案例分析, 如何在维护遗留系统时, 通过分离制作, 关注点分离, 实现对遗留系统不伤害,从而引入设计模式 内容三:练习案例- 重构到模式 |
第七篇: 重构到设计模式 第12单元 重构到模式应用案例 通过重构实现模式改善既有的设计,往往优于在新的设计早期使用模式。 内容一:重构到模式- 1. 设计坏味道概述 2. 重构思想 3. 理解如何结合重构和模式; 4. 用模式导向的重构(pattern-directed refactoring)改善既有代码的设计; 5. 找出需要进行模式导向重构的代码段; 6. 了解为什么使用模式来改善既有的设计要优于在新的设计早期使用模式。 7. 一组坏味 (也就是问题),表示需要进行模式导向的重构; 8. 实现同一模式的不同方式的示例; 9. 什么时候应该通过重构实现模式、趋向模式以及去除模式给出建议。 10. 常见设计模式的重构演化的过程 A案例分析—通过一个大型电信系统案例分析, 解决如何通过重构引入设计模式 内容二:案例- 遗留系统如何使用设计模式 1. 拒绝退化—“首先不要伤害” 2. 关注点分离 3. 通过案例分析,如何修改遗留代码,而不破坏现有系统代码结构,引入设计模式 A案例分析—通过一个系统案例分析, 如何在维护遗留系统时, 通过分离制作, 关注点分离, 实现对遗留系统不伤害,从而引入设计模式 内容三:案例- 某电信管理子系统的设计 1. 介绍项目需求情况,进行设计 2. 通过重构逐步实现设计模式 3. Framework 设计思想—好莱坞原则 4. 学习设计模式(Factory Method, Template Method, Composite, Chain of Responsibility ) (“虽然软件的演化,利用重构从而得到模式”是有效应用设计模式的实践准则。本节以一些重构技巧来展示如何通过演化的方式来步步达至设计模式,从而帮助学员更好地掌握如何在软件设计中运用设计模式,发现更多设计模式。) |
第13单元 设计模式应用策略- 综合应用分析 内容一:大型系统的设计案例分析, 介绍如何预先应用模式,以及如何在第3版本重构时导入模式, 已经在后期维护时应用模式 1.××某省移动线路资源维护系统的背景介绍 2.系统需求分析 3.如何根据应用系统特点, 和变化与不变等原因,引入模式 4.根据应用功能,导入设计模式 5.第1版本上线时的系统设计分析 6.第1版本,系统设计时遗留的问题, 设计不足, 缺陷等分析 7.第2版本, 由于增加新功能导致的严重问题分析 8.系统出现很多设计不足 9.第3版本, 由于增加新功能导致的严重问题分析 10.系统开始引入重构,系统的坏味道, 以及重构,分析在重构是如何使用重构 11.分析第4版本的系统设计 系统在后续维护过程之中的, 设计情况。 以及如何在维护时期进行应用模式 |