软件设计模式最佳实践

课程背景
·阐明了面向对象思想的基本原则与设计模式的核心思想。
·鞭辟入里地对重要的设计模式进行了分析与讲解。
·以多个真实的项目为案例,深入讲解设计模式的运用。
·提供了大量的项目实例与代码,展现设计模式的结构。
课程亮点
·全真案例,借助案例与设计模式知识的原理,借助最佳实践,帮助您提高设计能力,从而提高开发效率和设计质量。
·以新视角,揭示模式的本质、思想方法,剖析出模式之“道”,跳出“为模式而模式”的“陷阱”。
·提升设计能力,使开发人员由“编程小工”到设计专家。
·结合测试驱动开发与重构,提高软件设计质量。
·关注业界内设计模式,以实战训练驱动对设计模式的理解与运用。
·提升企业软件设计团队的协作能力。
培训对象
·各类软件研发中心的软件设计师、架构师。
·项目经理、技术总监、质量部门经理。
学员基础
学员学习本课程应具备下列基础知识:
·了解Java/C#或者C++任一面向对象语言。
·具有面向对象基本概念,熟悉基本设计模式。
课程特点
本课程注重实战,采用案例贯穿方式完成实践,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总、研讨,并最终形成培训教程。
课程目标
·员工无法接手遗留系统,原因是代码杂乱,可读性差。
·团队成员没有设计模式知识与经验,无法实施敏捷开发。
·系统难以重构,不利于产品的重用与二次开发。
·开发效率得不到保障,因为详细设计人员不能理解架构文档与详细设计方案。
·设计方案难于应对需求变更。
·设计的系统架构缺乏可扩展性、可维护性和可测试性,不能合理地重用
·架构、设计、开发三个环节中各个角色不能理解设计意图,很难沟通。
教学大纲
     整个课程时间为3天,每天5学时,每学时70分钟。下面列出的是通用的教学大纲,希赛教育所有内训课程都可以根据客户的需求进行个性化定制。    我要定制课程>>>
教学单元 单元教学内容
第一单元:面向对象设计要义 1、面向对象思想的核心要素
(1)封装的本质与意义
(2)封装与信息隐藏
(3)良好的封装与对象的高内聚
(4)继承与基于差异式编程
(5)合成/聚合复用原则
(6)多态与抽象
(7)多态的实现形式
2、案例分析

(1)邮件服务
(2)员工信息管理
第二单元:重用原则 1、导致代码重复的原因
(1)懒惰:容忍不好的代码
(2)技能不足:复制与粘贴反模式
(3)缺乏沟通:重复制造轮子
2、重复带来的后果
(1)重复实现,影响开发效率
(2)解决方案蔓延
(3)无法有效复用
3、对象级重用
(1)保证对象的粒度(方法级、类级、模块级和层级)
(2)横切关注点的识别
(3)系统的共性分析
(4)对象的封装与职责委派
(5)DRY原则
(6)迪米特法则
(7)单一职责原则
4、架构级重用
(1)架构资源元模型
(2)开发期资源
(3)运行期资源
5、模式参考
(1)简单工厂模式
(2)模板方法模式
(3)代理模式
(4)适配器模式
(5)装饰器模式
6、案例分析
(1)遗留系统分析
(2)过长方法的坏味道
(3)Model的重用
(4)JUnit分析
(5)Acegi授权认证分析
第三单元:协作原则 1、职责驱动设计
(1)如何识别对象的职责
(2)履行职责的方式
(3)专家模式
(4)自治对象
(5)职责的分配
2、协作的要则
(1)对象社区
(2)协作的方式
(3)协作的度
(4)时序图与对象协作
(5)按照意图设计
(6)协作与职责委派
(7)协作与依赖
(8)协作与平衡
3、模式参考
(1)MVC模式
(2)管道-过滤器模式
(3)工厂模式
(4)观察者模式
(5)调停者模式
4、案例分析
(1)数据分析器
(2)Spring MVC分析
第四单元:扩展原则 1、功能扩展
(1)扩展的定义
(2)内部扩展
(3)外部扩展
2、可扩展性设计
(1)扩展与抽象
(2)扩展与继承
(3)扩展与组合
(4)开放封闭原则
(5)依赖倒置原则
(6)针对接口编程
(7)惯例优于配置
3、可变性分析
(1)视角框架
(2)寻找变化点
(3)封装变化
4、模式参考
(1)装饰器模式
(2)代理模式
(3)策略模式
(4)命令模式
(5)访问者模式
(6)微核模式
5、案例分析
(1)JUnit分析
(2)短信平台
(3)话单处理
(4)格式规则匹配器
第五单元:分离原则 1、关注点分离
(1)职责分离
(2)扩展点分离
(3)架构属性与关注点
(4)架构视图
(5)模块与层的分解
(6)接口隔离原则
2、处理变化
(1)封装隔离变化
(2)抽象稳定变化
(3)分离变与不变
(4)分离变化与变化
3、模式参考
(1)桥接模式
(2)迭代器模式
(3)装饰器模式
(4)MVC模式
(5)分层架构模式
4、案例分析
(1)AIATools项目分析
(2)EISaaS架构分析
(3)图形处理系统
第六单元:简约原则 1、架构与设计的要义
(1)设计需要化繁为简
(2)架构设计的度
(3)避免夸大的灵活性
(4)优良架构的特征
2、场景驱动设计
(1)分辨客户需求
(2)识别风险与优先级
(3)封装隐藏实现
(4)抽象统一模型
(5)提高代码质量
(6)敏捷设计原则
3、对简约原则的考量
(1)可复用性
(2)可扩展性
(3)可测试性
(4)可读性
(5)易用性
4、设计反模式
(1)模式病
(2)分析瘫痪
(3)设计过度
(4)意外的复杂度
5、模式参考
(1)外观模式
(2)入口模式
(3)建造者模式
(4)包装器模式
(5)注册表模式
(6)Service Locator模式
6、案例分析
(1)汽车零售系统
(2)AIATools分析
(3)燃气集团解决方案分析
第七单元:间接原则 1、间接的思想
(1)以迂为直
(2)间接性与层次
(3)间接的度
2、引入间接
(1)引入间接隔离变化
(2)职责的委派
(3)职责的封装
(4)职责的抽象
(5)职责的适配
3、间接的目的
(1)降低耦合
(2)化繁为简
(3)隐藏细节
4、模式参考

(1)外观模式
(2)代理模式
(3)适配器模式
(4)调停者模式
(5)资源库模式
(6)Service Locator模式
(7)分层架构模式
5、案例分析
(1)缓存处理
(2)功能引擎
(3)适配Jxl
第八单元:一致原则 1、一致原则的体现
(1)接口的一致
(2)形式的一致
(3)调用的一致
(4)解决方案的一致
2、和谐的软件系统
(1)需求的一致性
(2)架构视图的一致性
(3)架构策略的一致性
(4)产品的一致性
(5)技术选择的标准
3、一致遵循的原则
(1)惯例优于配置
(2)Liskov替换原则
(3)局部整体原则
(4)接口统一原则
4、模式参考
(1)合成模式
(2)适配器模式
(3)代理模式
(4)空对象模式
(5)外观模式
5、案例分析
(1)数据源的处理
(2)NHibernate分析
(3)JUnit分析
(4)图像处理系统
联系我们