4006-998-758
3000+课程任你选择
面向对象 - 设计原则、架构风格和设计模式
研发学院 体系架构设计 产品经理 开课时间:2021-07-04
张云龙

具有多年面向对象软件开发、设计和管理经验,曾在华为和科陆公司担任高级软件工程师、系统工程师、敏捷教练、CMMI设计组组长、事业部首席软件架构师等职务。

拥有国家“系统架构设计师(高级)”和“系统分析师(高级)”两项职业资格认证。拥有SpecDD专家级认证。

主要擅长敏捷实践在各领域的应用,包括代码持续优化与重构,嵌入式C语言架构设计与自动化测试,C#、java语言架构设计与自动化测试。精通多进程、多线程并发系统架构设计,有高负载微服务架构设计经验。精通操作系统原理,有嵌入式操作系统uCOS在多种硬件平台上的移植经验。现在主要从事全系统级架构规划与设计工作。

授课经验丰富,曾为沈阳飞利浦、南京西门子、武汉烽火等知名企业,开展过架构设计相关的内训课程。


查看老师详情
课程内容


课程介绍


该课程包含的内容有:架构设计思想、软件质量属性、架构文档撰写、组包原则、面向对象设计原则、常用架构风格、常用的设计模式。


 课程收益


通过该课程,希望让学员在多个层次上对架构设计的能力达到提高:

1、全系统架构级,掌握服务的识别与划分技巧

2、哲学层次级,掌握软件内部框架级架构设计模板(架构风格)

3、软件模块级,掌握模块划分的通用模板(设计模式)


 课程对象


程序员、软件架构工程师、系统工程师、系统分析师

 

学员基础


学习本课程应具备下列基础知识:至少掌握一种面向对象语言,有类与对象的基本概念。

 

关键词


1、 面向对象

2、 质量属性

3、 4+1视图

4、 组包原则

5、 设计原则

6、 架构风格

7、 设计模式

 

课程大纲


主题

授课内容

引子

从两个案例说起。指出大部分的软件都是“意大利面条”式的代码。

引申出解决之道――软件架构设计、代码持续优化和自动化测试。

第1单元

架构设计思路

1、架构设计思路

(1)考虑驱动因素

(2)设计基础架构

(3)输出设计结果

(4)跟随项目持续优化

(5)输出优化代码

2、架构设计的驱动因素

(1)软件质量模型

(2)质量属性间的互斥

(3)性能与其他属性的取舍

第2单元

模块化程序设计思想

该单元介绍代码分模块、分层的思想,以及一些基本的代码解耦方法。

1、模块化设计的目的

2、模块化程序设计方法

(1)什么是模块

(2)什么是好模块

(3)模块接口设计

3、模块杀手--循环依赖

(1)次晨综合症

(2)分层设计思想

第3单元

架构设计文档

1、架构视图

(1)开发视图――类图和包图

(2)逻辑视图

(3)4+1视图

(4)4+1视图在架构文档中的取舍

2、架构设计文档

(1)架构文档的价值

(2)架构文档的撰写原则

3、平台接口说明文档

(1)平台架构思想

(2)平台接口约束文档

第4单元

组包原则

设计原则

1、 低耦合组包原则

(1)无环依赖原则

(2)稳定依赖原则

(3)稳定抽象原则

2、高内聚组包原则

(1)重用-发布原则

(2)共同重用原则

(3)共同封闭原则

3、面向对象设计原则

(1)单一职责原则

(2)开闭原则

(3)里氏替换原则

(4)接口隔离原则

(5)依赖倒置原则

第5单元

基础架构级模块划分--架构风格

1、哲学层次的架构设计

2、架构风格定义与分类

3、常用风格的模块划分

(1) “层次结构”(平台设计思想)

(2) “面向对象”(同层模块划分)

(3) “批处理序列”和“管道-过滤器”

(4) “黑板系统”

(5) “数据库系统”

(6) “进程通信”

(7) “事件驱动”

(8) “基于规则的系统”与“虚拟机”

第6单元

设计模式概述

1、什么是设计模式

2、使用设计模式的好处

3、被滥用的设计模式

第7单元

策略模式

外观模式

2.1 依赖倒置原则

2.2 策略模式

2.2.1为什么叫策略

2.2.2策略模式的好处

2.2.3案例1

2.2.4运用时机

2.2.5案例2--变体

2.3 外观模式

2.4 表数据入口模式

2.5策略模式与外观模式的区别

第8单元

模板方法模式

3.1 策略模式带来的重复代码

3.2 模板方法模式

3.3 运用时机与弊端

3.4 模板方法的滥用

第9单元

工厂模式

4.1 策略模式的局限

4.2 工厂模式

4.3 自动化测试

4.4 扩展运用

4.5 运用时机

第10单元

抽象服务模式

适配器模式

5.1 抽象服务模式

5.2 适配器模式

5.2.1对象形式的适配器模式

5.2.2类形式的适配器模式

第11单元

组合模式

6.1 扩展功能需求导致违反开闭原则

6.2 组合模式

6.3 运用时机

6.4 组合模式的好处

第12单元

MVP模式

MVC模式

7.1 反例

7.2 抽取“模型”层接口

7.3 “表示器”层

7.4 案例

7.5 数据主动变化处理

7.6 MVC模型

7.7 MVP模型的优缺点

7.8 MVP模式的运用时机

第13单元

观察者模式

8.1 案例

8.2 合成复用原则

8.3 与工厂模式的矛盾

8.4 观察者模式的运用时机

8.5 用event简化观察者实现

8.6 推模型观察者模式

选讲内容:Lamda表达式

第14单元

状态模式

9.1有限状态机案例

9.2 switch/case实现

9.3 迁移表实现

9.4 状态模式实现

9.4.1 状态模式类图

9.4.2 旋转门类的实现

9.4.3 状态类的实现

9.4.4 状态模式的优缺点

9.5 状态模式的运用时机

第15单元

装饰模式

10.1 案例1

10.2 装饰模式的适用场景

10.3 装饰模式

10.4 案例2

第16单元

单例和单态模式

11.1 单例和单态模式的运用时机

11.2 单例模式

11.3 单态模式

第17章

架构师如何工作

1、和团队一起工作

2、代码走读

3、结对编程

4、加强学习


返回上一级