java php asp.net 安卓 云计算 数据库

高级软件设计实践及案例实战

价格:1500
总课时:20课时 发布时间:2015年

简介

项目经理、技术总监

收看本课程的其它同学

  • vaellys

  • qhDocument

  • niuniu_cyg2014

  • j2ee.yoyo

  • 过忘

  • liulei_work

  • kevindk

  • gufeng20081010

  • wlianq

  • 已有947人购买

    浪曦星际一卡通

  • 已有377人购买

    浪曦OA与工作流系统

  • 已有345人购买

    Spring源码解读与设计详析

  • 已有305人购买

    Java常见笔试、面试系列

  • 已有295人购买

    浪曦CRM企业级开发应用系统

  • 已有286人购买

    风中叶2016述职规划全程讲座分享

  • 已有241人购买

    Git应用开发详解(体验)

  • 已有237人购买

    Mysql高级海量数据存储和优化

  • 已有226人购买

    圣思园视频

  • 已有192人购买

    Oracle DBA系列教程

  • 课程简介
  • 课程目录
  • 课程评价(4)

第一单元 什么优秀设计以及如何实现应对需求变化


内容一:什么是好的设计 

1.什么是好的软件详细设计和衡量的手段

2.世界大师的观点(Robert C Martin , Peter Code,` James Shor)

3.我们现实项目的情况,随时需求的变化,我们自以为豪的设计,都逐渐变烂,变成纠缠不清的代码浆糊.

4.可扩展性(Extensibility)容易添加新的功能. 结合案例,通过那些手段如何实现该目标

5.灵活性(Flexibility)代码修改平稳地发生. 结合案例,通过那些手段如何实现该目标

6.可插入性(Pluggability)容易将一个类抽出去,同时将另一个有同样接口的类加入进来. 结合案例,通过那些手段如何实现该目标.

 

内容二:如何应对需求的变化

1.设计基本原则

2.发现和封装变化的原则

3.面向对象的基本原则(OCP/SRP/ DIP等基本设计原则)

4.根据共性性分析,进行行为职责或者数据的抽象

5.根据可变性分析,进行职责的结构分析和实现

6.局部化变更-可修改性战术目标是减少由某个变更直接影响的模块数量.

7.防止连锁反应-目标是限制对局部化的模块的修改.减少间接受变更影响的模块.

8.推迟绑定时间-尽量不要静态编译,应该运行期间决定组件之间关系

9.结合多个案例项目进行分析,怎样发现和封装变化,如何通过具体的手段来进行适应这些变化

 

第二单元设计原则及设计模式


内容一:面向对象设计原则及其分析

i 软件设计目标,基本原则和模式关系

i 开闭原则

i 依赖倒置原则

i 单一职责原则

i 里氏替换原则

i 合成/聚合复用原则

i 接口隔离原则和Demeter法则

i 通过案例进行分析,模式如何使用

 

内容二:常见架构设计原则及其分析

i 抽象(Abstraction)、封装(Encapsulation)和信息隐藏(Information Hiding)

i 分而治之(Divide-And-Conquer)和模块化(modularization)

i 松耦合和高内聚(Coupling and Cohesion)

i 策略和实现的分离(Separation of Policy and Implementation)

i 接口和实现的分离(Separation of Interface and Implementation)

i 单一引用点(Single Point of Reference)

典型案例分析:架构原则在实际项目中应用

 

内容三:案例分析—OO基本原则 (多个小案例,不涉及特定的业务)

i 通过经典面向对象案例,要求学员分别使用过程式和面向对象2种思维,进行设计

i 进行对比2种思维的不同点和结果

i 通过案例指出OO是否真正做到了它所说的价值

i 这些小案例涉及项目开发中的常见的困境、疑惑,本节探讨如何通过设计原则解决。

讨论设计原则与设计模式的关系,已经在没有合适模式可用的情况下如何分析、解决问题。


第三单元设计模式大讨论


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

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


内容二:设计模式总结

1.设计模式不是银弹

2.设计模式真正给设计者带来的价值

3.设计模式仅仅是工具

4.超越设计模式

 

 

第四单元重构到设计模式


内容一:重构到模式

1.软件设计的基本原则

2.设计模式概述

3.设计模式的本质论

4.设计模式如何适应变化和封装

5.重构到模式的思路

 

内容二:案例---重点介绍重构基本类型依赖和对应模式

1.通过案例学习以下重构到模式手段

2.以State取代状态改变条件语句

3.以Strategy取代条件逻辑

4.以Composite取代隐含树

5.以Interpreter取代隐式语言

6.转移装饰功能到Decorator

7.用Builder封装Composite

8.重点学习案例的重构到模式的过程

 

内容三:案例---重点介绍重构代码重复和对应模式

·通过案例学习以下重构到模式手段

·构造Template Method

·以Composite取代一/多之分

·引入Null Object

·用Adapter统一接口

·用Fatory Method引入多态创建

·重点学习案例的重构到模式的过程


课程说明:

本课程主要讲解java面向对象设计原则,设计模式;

讲解如何才是优秀的设计;
讲解常用设计模式的使用场景及使用方法;
讲解设计模式在实际项目中的综合应用
讲解设计模式在代码重构中的使用。
讲解代码的可扩展性和可维护性应用。

课程目的:

让学员熟练掌握面向对象的设计;熟悉设计模式的使用场景;

熟悉在项目中使用设计模式;
熟悉如何利用设计模式进行代码重构;
熟悉代码的可扩展性和可维护性


授课形式(录制)

·PPT+教材+参考资料,理论讲解

·场景+案例+模拟环境,动手实践

·手把手解决问题+解决问题经验分享