4006-998-758
3000+课程任你选择
设计模式精解与案例分析 - 高级版本
研发学院
刘捷

前IBM中国研发中心,BEA中国研发中心,oracle中国研发中心,阿里云,多家互联网研发中心咨询顾问。曾任软件开发工程师,高级技术专家,首席架构师等。主要负责客户项目的架构设计和项目开发,架构重构,技术支持,AI2.0时代软件研发,AI赋能研发转型,基于chatGPT大模型的开发咨询。保证项目的成功实施。参加过全省、全国多个大型的计算机应用项目。擅长AI2.0时代研发,软件架构设计与评审、高质量代码体系、单元测试、设计模式、重构(Refactor)、演进式设计(Evolutionary Design)以及降低代码的复杂度(Cyclomatic Complexity)。通过重构、重写,将代码量大幅度缩减,并且提高可读性、可扩展性、可变更性,从而大幅度降低开发成本。他热爱学习、思考与分享,曾翻译过多本技术书籍,在网站上发表过各种文章,并曾多次在技术会议和社区活动上发表演讲。最近几年带队完成了数十个AI项目,内容不仅包括深度学习、机器学习、数据挖掘等具体技术要点,也包括AI的整体发展、现状、应用、商业价值、未来方向等,涵盖内容非常丰富。完成多个深度学习实践项目,广泛应用于医疗、交通、农业、气象、银行、电信等多个领域。

查看老师详情
课程内容


为什么需要该课程


<设计模式>自从1995年一书出版,已经25周年以上了. 如今,对于很多人来说,设计模式已经成为开发标准词典的一部分.25年来,设计模式思想影响了整整一代软件从业者.而且可以预料,它的影响还将继续下去.可是目前国内的大部分程序员学习设计模式和原则之后,往往是不知道如何使用模式,或者滥用模式(言必称模式),最终放弃不用模式,这样三个阶段,最终导致设计模式思想还远没有真正广泛应用,更没有起到应有的作用,因而导致很多对设计模式的误解(学习设计模式无用论).该课程就是针对学习设计模式这3个经典错误问题而开设的.

作为为一门高级课程,若内容缺乏实务便易流于抽象与空泛。 本课程除了深入剖析各种典型的设计模式之原理与结构外, 同时会抽取大量知名程序库中的设计模式,利用其源码辅助并加强原理讲解。并且结合讲师大量实际项目案例进行分析. 这种方式对于设计模式的学习有着极大效果。 与其它的仍然沿用传统模式目录方式逐一讲述每一模式的意图,结构,适应性等的培训和图书完全不同.

课程1/3的时间介绍设计模式思想和原理,1/3时间案例,并且要求学员组合成小组进行现场设计. 最后1/3时间再介绍该案例的设计过程,讲师带领大家一起对设计结果进行分析,指出不”和谐”的地方,通过逐步运用模式,改善设计. 而不是把最完美的答案一下子放到学员的面前,让你佩服.并且分析为什么使用模式,而不是过度设计,为什么又要放弃模式. 因为了解优秀软件设计的演变过程比学习优秀设计本身更有价值,因为设计的演变过程之中蕴藏着大智慧.培训时根据实际情况,可以安排学员自己的项目代码或者设计作为课程案例进行分析和设计。



谁已经选择了我们的咨询和培训



我们已经为几十家企业提供了多次培训和咨询服务,以下企业已经选择了我们的内训课程

互联网研发企业,比如百度研发中心,阿里巴巴, 腾讯 ,畅唐科技, 猎豹移动(原金山移动)

电信研发企业,比如思科研发中心,阿尔卡特-朗讯研发中心,华为研发中心,摩托罗拉研发中心,大唐电信研发,广州从兴电子,亿阳通信 , 爱立信研发中心,鼎桥通信技术, 艾默生研发中心,中兴通讯研发中心,

广州诚毅科技研发中心,神州数码网络通信研发中心,北京全路通信信号研究设计院,上海贝尔电信

企业软件研发企业,比如Adobe中国研发中心,北京久其研发中心,博古中国研发中心,金蝶深圳研发中心, EMC中国研发中心(北京和上海),VMware中国研发中心,珠海远光,爱德万测试有限公司advantest

嵌入式软件企业,比如阿尔卑斯中国研发中心,德国M&M Software,西门子研发中心, Sony研发中心,金立智能研究院,南车研发中心,德塞西威,霍尼韦尔研发中心, 东芝中国研发中心, 汇川科技, 霍尼韦尔

外包类企业,联盟计算机服务

金融行业:恒生电子,华腾,中国人民银行研发中心,工商行研发中心,平安科技研发中心,建行研发中心,深圳登记结算研发中心,花旗银行中国研发中心


课程主要涉及内容


模式类型

6个大型项目案例涉及软件原则和模式

备注

面向对象设计原则

单一职责原则 (SRP)  变化分离

“开-闭”原则(OCP)对可变性封装

里氏替换原则(LSP)  如何进行继承

接口隔离原则(ISP) 恰当的划分角色和接口

依赖倒转原则(DIP) 针对接口编程


编程范式

介绍常见的编程范式有:函数式编程、程序编程、面向对象编程、面向过程,指令式编程等。


GOF设计模式

Singleton模式/Builder模式/Simple Factory模式

Factory Method模式/ Strategy/Observer/Chain of Responsibility/Command/Template Method/Adapter/Proxy/Façade/Bridge/Decorator/Composite/Visitor

课程案例主要涉及15种GOF常用设计模式,也重点学习这些模式

架构模式

Pipe Filter架构模式/Layer架构模式/Microkernel Pattern/MVC/

案例涉及这些架构模式,在高层设计

 

 

第一篇: 设计模式-设计原理与面向对象设计思维

主题

培训内容

备注

第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单元 结构型模式

 

 

内容一:结构型模式(principles)

1. Adapter(适配器)—类对象结构型模式

2. Bridge(桥接)—对象结构型模式

3. Composite(组成)—对象结构型模式

4. Decorator(装饰)—对象结构型模式

5. FACADE(外观)—对象结构型模式

6. Flyweight(享元)—对象结构型模式

7. Proxy(代理)—对象结构型模式

8. 结构型模式的讨论  

9. Adapter与Bridge对比与分析

10. Composite、Decorator与Proxy 对比与分析


第四篇: 设计模式精讲------行为型

第5单元 行为型型模式

 

 

内容一:行为型模式(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.  行为模式的讨论  


第五篇: 设计模式对比

第6单元 设计模式对比

 

 

内容一:模式大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模式与职责链模式

 

将实践中常容易混淆或常常联合使用的几个模式放在一组讨论,对比分析,讲解思想。如何发现、应用更多模式。通过对“相似或相关的设计模式”的对比分析,加深理解,是避免“模式误用”的好方法。


第六篇: 设计模式应用案例

第7单元 设计模式应用案例

 

 

内容一:用模式思考系统设计

1. 基于模式的设计系统

2. 用模式思考的过程

3. 模式的应用层次和组合应用模式

4. 基于模式的方法和步骤

 

内容二:练习案例- Log子系统的设计

1. 介绍项目需求情况,进行设计

2. 通过重构逐步实现设计模式

3. Framework 设计思想—好莱坞原则

4. 学习设计模式(Factory Method, Template Method, Composite, Chain of Responsibility )


第8单元 设计模式应用策略

有时放弃模式更值得学习

内容一:模式案例–XXXX缓存系统

1. 项目系统背景和需求

2. 缓存任何对象,任何java对象都可以缓存。

3. 拥有全面的API--给你全面的程序来控制所有的缓存的特性。

4. 永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。

5. 支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。

6. 缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。

7. 系统的设计思考过程

8. 展示如何用模式,进行设计

9. 学习设计模式()


第七篇: 重构到设计模式

第9单元

重构到模式应用案例

 

通过重构实现模式改善既有的设计,往往优于在新的设计早期使用模式。

内容一:重构到模式-  

1. 设计坏味道概述

2. 重构思想

3. 理解如何结合重构和模式;

4. 用模式导向的重构(pattern-directed refactoring)改善既有代码的设计;

5. 找出需要进行模式导向重构的代码段;

6. 了解为什么使用模式来改善既有的设计要优于在新的设计早期使用模式。

7. 一组坏味 (也就是问题),表示需要进行模式导向的重构;

8. 实现同一模式的不同方式的示例;

9. 什么时候应该通过重构实现模式、趋向模式以及去除模式给出建议。

10. 常见设计模式的重构演化的过程

11. 练习—通过一个大型电信系统案例分析, 解决如何通过重构引入设计模式

 

内容二:案例- 遗留系统如何使用设计模式

1. 拒绝退化—“首先不要伤害”

2. 关注点分离

3. . 通过案例分析,如何修改遗留代码,而不破坏现有系统代码结构,引入设计模式

7. 练习—通过一个系统案例分析, 如何在维护遗留系统时, 通过分离制作, 关注点分离, 实现对遗留系统不伤害,从而引入设计模式

 

内容三:练习案例- 重构到模式


第10单元

设计模式应用策略- 综合应用分析

内容一:大型系统的设计案例分析, 介绍如何预先应用模式,以及如何在第3版本重构时导入模式, 已经在后期维护时应用模式

1. ××某省移动线路资源维护系统的背景介绍

2. 系统需求分析

3. 如何根据应用系统特点, 和变化与不变等原因,引入模式

4. 根据应用功能,导入设计模式

5. 第1版本上线时的系统设计分析

6. 第1版本,系统设计时遗留的问题, 设计不足, 缺陷等分析

7. 第2版本, 由于增加新功能导致的严重问题分析

8. 系统出现很多设计不足

9. 第3版本, 由于增加新功能导致的严重问题分析

10. 系统开始引入重构,系统的坏味道, 以及重构,分析在重构是如何使用重构

11. 分析第4版本的系统设计

12. 系统在后续维护过程之中的, 设计情况。 以及如何在维护时期进行应用模式


 

返回上一级