第1章 软件设计原则与UML简介\t1
1.1 开闭原则\t2
1.1.1 应用实例:银行业务\t2
1.1.2 银行业务实现\t3
1.1.3 练习\t7
1.2 里氏替换原则\t11
1.2.1 预备知识\t11
1.2.2 里氏替换原则简介\t11
1.2.3 “乘马说”Java实现\t12
1.2.4 经典实例:鸵鸟非鸟\t13
1.3 依赖倒置原则\t16
1.3.1 Java应用实例\t16
1.3.2 依赖倒置原则的意义\t16
1.3.3 依赖倒置原则的优点\t17
1.3.4 依赖倒置原则的例子\t17
1.3.5 练习数据访问MySQL/Oracle\t18
1.4 接口隔离原则\t21
1.5 合成/聚合复用原则\t23
1.5.1 应用实例\t24
1.5.2 练习\t25
1.6 迪米特法则\t29
1.6.1 迪米特法则简介\t29
1.6.2 违反迪米特法则的设计与实现\t30
1.6.3 遵守迪米特法则的设计与实现\t32
1.7 单一职责原则\t34
1.7.1 应用实例:用户信息管理系统\t34
1.7.2 用户信息管理系统设计与Java实现\t35
1.7.3 用户信息管理系统Python实现\t37
1.8 UML简介\t38
1.8.1 依赖\t38
1.8.2 关联\t39
1.8.3 聚合\t39
1.8.4 组合\t39
1.8.5 泛化\t40
1.8.6 实现\t40
1.9 设计模式简介\t40
第2章 创建型模式\t42
2.1 简单工厂模式\t42
2.1.1 简单工厂模式的结构\t43
2.1.2 应用系统登录Java实现\t43
2.1.3 简单工厂模式的优缺点\t46
2.1.4 练习\t46
2.2 工厂方法模式\t52
2.2.1 工厂方法模式的结构\t53
2.2.2 练习\t55
2.3 抽象工厂模式\t63
2.3.1 抽象工厂模式的起源\t63
2.3.2 抽象工厂模式的结构\t64
2.3.3 抽象工厂模式的优缺点\t67
2.3.4 练习\t67
2.4 单例模式\t70
2.4.1 单例模式的结构\t70
2.4.2 单例模式常见的应用场景\t70
2.4.3 单例模式的类型\t71
2.4.4 练习\t75
2.5 多例模式\t78
2.5.1 多例模式结构\t78
2.5.2 练习\t79
第3章 结构型模式\t86
3.1 适配器模式\t86
3.1.1 适配器模式的结构\t87
3.1.2 电源适配器实现\t90
3.1.3 适配器模式的优缺点\t92
3.1.4 练习\t93
3.2 默认适配器模式\t96
3.2.1 默认适配器模式的结构\t97
3.2.2 练习\t99
3.3 装饰模式\t102
3.3.1 应用实例:孙悟空七十二般变化\t102
3.3.2 装饰模式的结构\t103
3.3.3 “孙悟空七十二般变化”Java实现\t105
3.3.4 装饰模式的简化\t108
3.3.5 装饰模式进阶\t109
3.3.6 练习\t110
3.4 门面模式\t117
3.4.1 什么是门面模式\t118
3.4.2 门面模式的结构\t118
3.4.3 门面模式在实际开发中的应用场景\t118
3.4.4 门面模式进阶\t120
3.4.5 练习\t120
第4章 行为型模式\t126
4.1 策略模式\t126
4.1.1 应用实例:旅游出行\t126
4.1.2 策略模式的结构\t127
4.1.3 策略模式源代码\t127
4.1.4 认识策略模式\t129
4.1.5 策略模式的优缺点\t129
4.1.6 排序策略系统Java实现\t130
4.1.7 练习\t136
4.2 模板方法模式\t140
4.2.1 模板方法模式的结构\t141
4.2.2 模板方法模式中的方法\t141
4.2.3 “西天取经八十一难”Java实现\t143
4.2.4 模板方法模式进阶\t144
4.2.5 练习\t146
4.3 命令模式\t150
4.3.1 命令模式的结构\t150
4.3.2 应用实例:玉帝宣美猴王上天\t153
4.3.3 命令模式解析\t153
4.3.4 命令模式和策略模式的区别\t154
4.3.5 命令模式的优缺点\t155
4.3.6 练习\t155
4.4 状态模式\t164
4.4.1 状态模式的结构\t165
4.4.2 练习\t168
4.5 观察者模式\t175
4.5.1 观察者模式结构\t175
4.5.2 观察者模式模型\t176
4.5.3 两种模式的比较\t182
4.5.4 练习\t182
参考文献\t192