Java语言高级运用与实战课程
课程天数:2天
课程介绍
本课程在使用Java上进行面向对象程序设计方面,本课程进行了相当深入的探讨和讲解。课程涉及大量使用Java进行软件设计的内容,可使学员在掌握了Java语法和基本框架的同时,还能在软件设计方面得到长足的进步。
作为为一门语言类的课程,若内容缺乏实务便易流于抽象与空泛。 本课程会从大量实际项目中抽取典型的案例,利用其源码辅助并加强原理讲解。并且结合讲师大的项目案例进行分析。 这种方式对于语言类的学习有着极大效果。与其它的仍然沿用传统模式目录方式逐一讲述每一个语法点的培训和图书完全不同。
课程收益
本课程学习可使学员在掌握了Java语法和基本框架的同时,还能在软件设计方面得到长足的进步;
Java核心技术;
Java面向对象程序设计;
系统设计中的重要原则及可扩展系统的达成实践;
系统设计中常用技巧实践;
培训对象
开发团队中的程序员、设计人员、系统分析人员、技术管理者,以及有望或有志成长为以上角色的技术人员。
课程大纲
第一单元:Java核心技术
内容一: Java核心技术
• Java泛型技术
• 常用集合及注意点
• lambda表达式
• 接口设计技巧:内存接口与网络接口设计
• Java反射机制
• Java 自省机制 Java bean
• Java及容器配置方式
• Java动态代理机制
内容二:Java线程技术
• Java原子性操作类的应用
• Java线程并发库的应用
• Callable与Future的应用
• Java线程锁技术、读写锁技术的应用
• Java条件阻塞Condition的应用
内容三: Java开源框架与选型
• 分布式框架Dubbo、Motan
• Java并发编程--Executor框架
• Spring框架介绍
• Shiro的原理及Web搭建
• Map/Reduce框架
第二单元 :Java面向对象程序设计
内容一:Java中函数写法及注意点
• 高扇入与低扇出
• 函数书写的要点
• 函数参数个数
• 函数参数的设计要点
• 函数名称的重要性
• 对分支语句的讨论
内容二:类设计的原则的具体运用
• 封装:利用类的特征将数据和函数隐藏。
• 派生继承结构中需要注意的问题
• 隔离不同的因素,策略和实现分离的必要性
• 对复杂行为及多种情况组合的处理的处理。
• 用间接增强系统的灵活性
• 设计稳定结构的要点
• 对已存在的模块,如何动态改变其行为
• Java中进行抽象的技巧
第三单元:系统设计中的重要原则及可扩展系统的达成实践
内容一 系统设计中隔离变化的原则
• 面向对象设计思维与面向过程设计思维—职责驱动设计
• 策略封装原则——数据要封装,策略也要封装
• 开放封闭原则(OCP)
• 单一职责原则(SRP)
• Divergent Change——发散的变化
• Shotgun Surgery——散弹枪式的修改
• Liskov 替换原则(LSP)
• 面向对象常见的错误认识—思考OO带来的价值
内容二 系统接口设计及IOC原理运用
• 接口隔离原则
• 组件及子系统接口的设计
• 理解IOC的本质
• IOC及DIP原则的运用
第四单元:系统设计中常用技巧实践
内容一:对象与封装的技巧
• 将过程化设计转化为对象设计,并讨论过程化设计与对象化设计的特点及历史博弈;并给出过程式设计及及对象设计的模式——合适的就是好的!
• 封装值域/自封装值域的重构
• 以数据类取代记录的策略
• 以对象取代数组的策略
• 封装群集
• Data Class——纯粹的数据类
• 以State/Strategy取代型别码
• 通过案例介绍函数的重构
内容二:复杂条件的处理技巧
• 常见问题的求助
• 复杂条件表达式重构
• IF/Else语句的危害
• Switch语句的危害
• 分解/合并条件式
• 移除控制标记
• 高级技巧——IOC思想在简化复杂表达式方面的运用
• 通过案例介绍如何重构面向过程代码到面向对象
内容三:去除“大泥球”式的设计
• 过大的函数、模块、子系统
• 从系统设计的角度分析混乱产生的原因
• 重要但易被忽略的基本功
• Feature Envy——依恋情结
• Data Clumps——数据泥团
• Message Chains——过度耦合的消息链
• 介绍实用,但经常被忽略的高级技巧!
• 通过案例介绍如何分解系统
内容四:构建合理的继承体系,辨析继承 VS 组合
• 提炼继承体系——Extract Hierarchy
• 塑造模板函数
• 在多态体系中,如何处理子条件不一致的情况——继承体系中的高级技巧
• 塑造模板函数
• 以委托取代继承、以继承取代委托,父子关系与兄弟关系的辨析
内容五:多种情况的复杂组合
• 梳理并分解继承体系
• 如何处理让人疯狂的复杂分类?
• 如何处理动态变化的组合?——复杂组合设计的高级技巧
内容六:系统模块设计
• 领域模型建模
• 业务对象封装内在的业务逻辑,而应用服务封装外在于业务对象的业务逻辑。
• 系统模块设计的职责分配考虑及技巧