软件设计:Java语言实践 PDF 超清版

  • 更新时间:
  • 3757人关注
  • 点击下载

软件设计:Java语言实践》是一本关于Java相关的电子书资源,介绍了关于软件设计、Java语言方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小78 MB,马丁·P.罗毕拉德编写,目前豆瓣、亚马逊、当当、京东等综合评分为:7.2分,一起来看下具体内容。

资源详情相关推荐
《软件设计:Java语言实践》封面
  • 出版社:机械工业出版社
  • 作者:马丁·P.罗毕拉德
  • 大小:78 MB
  • 类别:Java
  • 热度:995
  • JavaScript语言精粹
  • Java语言程序设计与数据结构:基础篇(第11版)
  • 神经网络算法与实现 基于Java语言
  • 深度学习:Java语言实现
  • Java语言程序设计:基础篇(第10版)
  • 软件设计:Java语言实践》提供了关于软件设计深入的介绍,重点关注面向对象的设计,并使用Java编程语言。目的是通过发掘设计过程中的经验来帮助读者学习软件设计。使用这样一种叙述方式:在上下文中介绍设计知识的每一个元素,并探索不同的解决方案,同时辅以数百个代码片段和设计图。

    目录

    • 第1章 绪论1
    • 1.1 定义软件设计3
    • 1.2 软件开发过程中的设计5
    • 1.3 获取设计知识6
    • 1.4 共享设计技术8
    • 1.4.1 设计模式8
    • 1.4.2 设计反模式10
    • 小结10
    • 延伸阅读11
    • 第2章 封装12
    • 2.1 封装与信息隐藏12
    • 2.2 将抽象编码为类型13
    • 2.3 作用域与可见性限制16
    • 2.4 对象图18
    • 2.5 逃逸引用20
    • 2.5.1 返回指向内部对象的引用21
    • 2.5.2 在内部存储外部引用22
    • 2.5.3 通过共享结构泄露引用22
    • 2.6 不可变性23
    • 2.7 提供内部数据25
    • 2.7.1 扩展接口25
    • 2.7.2 返回副本26
    • 2.7.3 高级机制27
    • 2.8 契约式设计27
    • 小结30
    • 代码探索30
    • 延伸阅读32
    • 第3章 类型与接口33
    • 3.1 行为与实现解耦合33
    • 3.2 指定接口的行为36
    • 3.3 类图38
    • 3.4 函数对象40
    • 3.5 迭代器43
    • 3.6 ITERATOR设计模式45
    • 3.7 STRATEGY设计模式46
    • 3.8 接口分离原则47
    • 小结50
    • 代码探索50
    • 延伸阅读52
    • 第4章 对象状态53
    • 4.1 软件系统的静态和动态视图53
    • 4.2 定义对象状态54
    • 4.3 状态图55
    • 4.4 设计对象生命周期57
    • 4.4.1 无效和无用的状态58
    • 4.4.2 不必要的状态信息58
    • 4.5 可空性59
    • 4.5.1 无须对不存在的值建模60
    • 4.5.2 对不存在的值建模61
    • 4.5.3 可选值类型62
    • 4.5.4 NULL OBJECT设计模式63
    • 4.6 终极域和变量64
    • 4.7 对象身份、相等和唯一66
    • 4.8 FLYWEIGHT设计模式68
    • 4.9 SINGLETON设计模式71
    • 4.10 嵌套类的对象72
    • 4.10.1 内部类72
    • 4.10.2 匿名类74
    • 小结75
    • 代码探索76
    • 延伸阅读77
    • 第5章 单元测试78
    • 5.1 单元测试简介78
    • 5.2 JUnit单元测试框架基础81
    • 5.3 测试代码的组织82
    • 5.4 元程序设计83
    • 5.4.1 内省84
    • 5.4.2 程序的操作86
    • 5.4.3 程序元数据87
    • 5.5 测试构建88
    • 5.6 测试和异常条件91
    • 5.7 封装与单元测试93
    • 5.8 桩测试95
    • 5.9 测试覆盖96
    • 5.9.1 语句覆盖98
    • 5.9.2 分支覆盖98
    • 5.9.3 路径覆盖99
    • 小结99
    • 代码探索100
    • 延伸阅读101
    • 第6章 复合102
    • 6.1 复合与聚合102
    • 6.2 COMPOSITE设计模式105
    • 6.3 时序图109
    • 6.4 DECORATOR设计模式112
    • 6.5 COMPOSITE与DECORATOR的结合116
    • 6.6 多态对象复制118
    • 6.6.1 声明实现Cloneable接口119
    • 6.6.2 重写Object.clone()方法120
    • 6.6.3 调用super.clone()120
    • 6.6.4 捕获CloneNotSupported-Exception121
    • 6.6.5 把clone()加入接口122
    • 6.7 PROTOTYPE设计模式123
    • 6.8 COMMAND设计模式124
    • 6.9 迪米特法则127
    • 小结128
    • 代码探索129
    • 延伸阅读131
    • 第7章 继承132
    • 7.1 继承的实例132
    • 7.2 继承和子类134
    • 7.2.1 向下类型转换135
    • 7.2.2 单根的类层次结构136
    • 7.3 继承域137
    • 7.4 继承方法139
    • 注解重写方法143
    • 7.5 重载方法143
    • 7.6 继承与复合145
    • 7.7 抽象类147
    • 7.8 重温DECORATOR设计模式149
    • 7.9 TEMPLATE METHOD设计模式 151
    • 7.9.1 终极方法与终极类152
    • 7.9.2 抽象方法153
    • 7.9.3 模式总结154
    • 7.10 正确使用继承155
    • 7.10.1 限制基类客户端的行为155
    • 7.10.2 不适合作子类型的子类158
    • 小结159
    • 代码探索159
    • 延伸阅读161
    • 第8章 控制流反转162
    • 8.1 使用控制流反转的动机162
    • 8.2 模型–视图–控制器分解164
    • 8.3 OBSERVER设计模式165
    • 8.3.1 模型和观察者的连接165
    • 8.3.2 模型和观察者间的控制流166
    • 8.3.3 模型和观察者间的数据流168
    • 8.3.4 事件驱动程序设计170
    • 8.3.5 小结172
    • 8.4 应用OBSERVER设计模式173
    • 8.5 图形用户界面开发导论177
    • 8.6 图形用户界面组件图178
    • 8.6.1 用户体验视角178
    • 8.6.2 逻辑视角179
    • 8.6.3 源代码视角179
    • 8.6.4 运行时视角181
    • 8.6.5  定义对象图181
    • 8.7 事件处理183
    • 8.8 VISITOR设计模式186
    • 8.8.1 具体和抽象访问者188
    • 8.8.2 在类层次结构中集成操作189
    • 8.8.3 遍历对象图191
    • 8.8.4 OBSERVER模式中使用继承194
    • 8.8.5 在访问者结构中支持数据流196
    • 小结197
    • 代码探索198
    • 延伸阅读200
    • 第9章 函数式设计201
    • 9.1 一等函数201
    • 9.2 函数式接口、lambda表达式和方法引用203
    • 9.2.1 函数式接口203
    • 9.2.2 lambda表达式204
    • 9.2.3 方法引用207
    • 9.3 使用函数复合行为208
    • 9.4 用函数作数据供给者212
    • 供给者函数与OBSERVER模式217
    • 9.5 一等函数和设计模式218
    • 9.5.1 函数式STRATEGY218
    • 9.5.2 函数式COMMAND220
    • 9.6 函数式数据处理221
    • 9.6.1 数据作为流222
    • 9.6.2 将高阶函数应用于流223
    • 9.6.3 过滤流224
    • 9.6.4 映射数据元素225
    • 9.6.5 规约流226
    • 小结228
    • 代码探索228
    • 延伸阅读230
    • 附录A Java程序设计语言的重要概念231
    • 附录B 代码规范237
    • 附录C 应用实例240
    • 参考文献242
    展开阅读

    Java相关资源

    • 数据结构与算法分析:Java语言描述

      数据结构与算法分析:Java语言描述

      数据结构:Java语言描述(原书第3版) 是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估

      大小:47.3 MB数据结构

      立即下载
    • 神经网络编程实战:Java语言实现

      神经网络编程实战:Java语言实现

      大小:51.2 MB神经网络

      立即下载
    • Java语言程序设计教程

      Java语言程序设计教程

      本书基础知识和实际应用完美结合,经典案例完美诠释,以培养学生的面向对象的思维和面向对象的编程技术为核心,通过精选案例详细地介绍Java的基础知识和实用核心技术

      大小:55.5 MBJava

      立即下载
    • 数据结构与抽象:Java语言描述

      数据结构与抽象:Java语言描述

      本书是一本数据结构的教材,Java语言与数据结构两条知识主线贯穿始终,这两条主线既相互独立又相互支撑。本书介绍了计算机编程中使用的数据结构和算法,包括29章,每章涉及一个ADT或其

      大小:131 MB数据结构

      立即下载
    • 数据结构与算法经典问题解析:Java语言描述

      数据结构与算法经典问题解析:Java语言描述

      数据结构与算法经典问题解析:Java语言描述(原书第2版) 是一本数据结构方面的优秀教材,以Java为描述语言,介绍了计算机编程中使用的数据结构和算法。本书强调问题及其分析,而非理论阐

      大小:107.1 MBJava语言

      立即下载

    学习笔记

    15小时11分钟前回答

    Java语言实现数据结构栈代码详解

    近来复习数据结构,自己动手实现了栈。栈是一种限制插入和删除只能在一个位置上的表。最基本的操作是进栈和出栈,因此,又被叫作“先进后出”表。 首先了解下栈的概念: 栈是限定仅在表头进行插入和删除操作的线性表。有时又叫LIFO(后进先出表)。要搞清楚这个概念,首先要明白”栈“原来的意思,如此才能把握本质。 "栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。 实现方式是这样的:首先定义了一个接口,然后通过这个接口实现了线性栈和链式栈,代码比较简单,如下: package com.peter……

    10小时51分钟前回答

    弱类型语言javascript中 a,b 的运算实例小结

    本文实例讲述了弱类型语言javascript中 a,b 的运算。分享给大家供大家参考,具体如下: 下面有七个闭包小函数,用来测试 a,b 的 输出结果 测试1 :(当a为true,b为false的时候,输出的是false) !function() { var a = true,b = false; console.log((a,b) +' test1'); // false test1}(); 测试2 :(当a为true,b为true的时候,输出的是true) !function() { var a = true,b = true; console.log((a,b) +' test2'); // true test2}(); 测试3 :(当a为false,b为true的时候,输出的是true) !function() { var a = false,b = true; console.log((a,b) +' test3'); // true test3}(); 测试4 :(当a为false,b为false的时候,输出的是true) !function() { var a = false,b = false; console.log((a,b) +' test4'); // false test4}(); 测试5 :(当a为false,b为字……