序号 | 书号 | 书名
| 定价 |
1 | 9787111618331 | 设计模式:可复用面向对象软件的基础 | 79 |
2 | 9787111625988 | matlab程序设计导论 | 69 |
3 | 9787111603016 |
MATLAB程序设计 | 89 |
4 | 9787111570615 | 数字逻辑设计与计算机组成 | 89 |
总计 |
|
| 326 |
设计模式:可复用面向对象软件的基础
作者荐语
所有结构良好的面向对象软件体系结构中都包含了许多模式。实际上,当我评估一个面向对象系统的质量时,所使用的方法之一就是要判断系统
的设计者是否强调了对象之间的公共协同关系。在系统开发阶段强调这种机制的优势在于,它能使所生成的系统体系结构更加精巧、简洁和易于
理解,其程度远远超过了未使用模式的体系结构。
模式在构造复杂系统时的重要性早已在其他领域中得到认可。特别是,Christopher
Alexander和他的同事们可能*先将模式语言(pattern
language)应用于城市建筑领域,他的思想和其他人的贡献已经根植于面向对象软件界。简而言之,软件领域中的设计模式为开发人员提供了一
种使用专家设计经验的有效途径。
在本书中,Erich Gamma、Richard Helm、Ralph Johnson和John
Vlissides介绍了设计模式的原理,并且对这些设计模式进行了分类描述。因
此,该书做出了两个重要的贡献:首先,它展示了模式在构建复杂系统过程中所处的角色;其次,它为如何引用一组精心设计的模式提供了一个
实用方法,以帮助实际开发者针对特定应用问题使用适当的模式进行设计。
我曾荣幸地与本书的部分作者一同进行体系结构设计工作,从他们身上我学到了许多东西,相信阅读本书也能让你受益匪浅。
Rational 软件公司首席科学家
Grady Booch
内容简介
本书结合设计实例从面向对象的设计中精选出23个设计模式, 总结了面向对象设计中*有价值的经验,
并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、 表达清楚的软件设计模式, 这些模式在实用环境下特别有用。
本书适合大学计算机专业的学生、研究生及相关人员参考。
图书目录
出版者的话
赞誉
序言
前言
读者指南
第1章引言┊1
1.1 什么是设计模式┊3
1.2 Smalltalk MVC中的设计模式┊4
1.3 描述设计模式┊6
1.4 设计模式的编目┊7
1.5 组织编目┊8
1.6 设计模式怎样解决设计问题┊10
1.6.1 寻找合适的对象┊10
1.6.2 决定对象的粒度┊11
1.6.3 指定对象接口┊11
1.6.4 描述对象的实现┊12
1.6.5 运用复用机制┊15
1.6.6 关联运行时和编译时的结构┊18
1.6.7 设计应支持变化┊19
1.7 怎样选择设计模式┊22
1.8 怎样使用设计模式┊24
第2章实例研究:设计一个文档编辑器┊25
2.1 设计问题┊27
2.2 文档结构┊27
2.2.1 递归组合┊28
2.2.2 图元┊29
2.2.3 组合模式┊31
2.3 格式化┊31
2.3.1 封装格式化算法┊31
2.3.2 Compositor和Composition┊32
2.3.3 策略模式┊33
2.4 修饰用户界面┊34
2.4.1 透明围栏┊34
2.4.2 Monoglyph┊35
2.4.3 Decorator模式┊36
2.5 支持多种视感标准┊37
2.5.1 对象创建的抽象┊37
2.5.2 工厂类和产品类┊38
2.5.3 Abstract Factory 模式┊40
2.6 支持多种窗口系统┊40
2.6.1 是否可以使用Abstract Factory模式┊40
2.6.2 封装实现依赖关系┊41
2.6.3 Window和WindowImp┊43
2.6.4 Bridge模式┊46
2.7 用户操作┊46
2.7.1 封装一个请求┊47
2.7.2 Command类及其子类┊47
2.7.3 撤销和重做┊48
2.7.4 命令历史记录┊49
2.7.5 Command模式┊50
2.8 拼写检查和断字处理┊50
2.8.1 访问分散的信息┊51
2.8.2 封装访问和遍历┊51
2.8.3 Iterator类及其子类┊52
2.8.4 Iterator模式┊55
2.8.5 遍历和遍历过程中的动作┊55
2.8.6 封装分析┊56
2.8.7 Visitor类及其子类┊59
2.8.8 Visitor模式┊60
2.9 小结┊60
第3章创建型模式┊62
3.1 Abstract Factory(抽象工厂)—对象创建型模式┊66
3.2 Builder(生成器)—对象创建型模式┊74
3.3 Factory Method(工厂方法)—对象创建型模式┊81
3.4 Prototype(原型)—对象创建型模式┊89
3.5 Singleton(单件)—对象创建型模式┊96
3.6 创建型模式的讨论┊102
第4章结构型模式┊104
4.1 Adapter(适配器)—类对象结构型模式┊106
4.2 Bridge(桥接)—对象结构型模式┊115
4.3 Composite(组合)—对象结构型模式┊123
4.4 Decorator(装饰)—对象结构型模式┊132
4.5 Facade(外观)—对象结构型模式┊┊139
4.6 Flyweight(享元)—对象结构型模式┊146
4.7 Proxy(代理)—对象结构型模式┊155
4.8 结构型模式的讨论 ┊164
4.8.1 Adapter与Bridge┊164
4.8.2 Composite、Decorator与Proxy┊164
第5章行为型模式┊166
5.1 Chain of Responsibility(职责链)—对象行为型模式┊167
5.2 Command(命令)—对象行为型模式┊175
5.3 Interpreter(解释器)—类行为型模式┊183
5.4 Iterator(迭代器)—对象行为型模式┊193
5.5 Mediator(中介者)—对象行为型模式┊205
5.6 Memento(备忘录)—对象行为型模式┊212
5.7 Observer(观察者)—对象行为型模式┊219
5.8 State(状态)—对象行为型模式┊227
5.9 Strategy(策略)—对象行为型模式┊234
5.10 Template Method(模板方法)— 类行为型模式┊242
5.11 Visitor(访问者)—对象行为型 模式┊246
5.12 行为型模式的讨论┊256
5.12.1 封装变化┊256
5.12.2 对象作为参数┊257
5.12.3 通信应该被封装还是被分布┊257
5.12.4 对发送者和接收者解耦┊258
5.12.5 总结┊260
第6章结论┊261
6.1 设计模式将带来什么┊262
6.1.1 一套通用的设计词汇┊262
6.1.2 书写文档和学习的辅助手段┊263
6.1.3 现有方法的一种补充┊263
6.1.4 重构的目标┊264
6.2 本书简史┊265
6.3 模式界┊266
6.3.1 Alexander的模式语言┊266
6.3.2 软件中的模式┊267
6.4 邀请参与┊267
6.5 临别感想┊268
附录A词汇表┊269
附录B图示符号指南┊273
附录 C基本类┊277
参考文献┊284
matlab程序设计导论
作者简介
[美] 尤金尼·E.米哈伊洛夫(Eugeniy E. Mikhailov) 著:尤金尼•E.米哈伊洛夫(Eugeniy E.
Mikhailov)
得克萨斯农工大学物理系博士,MIT博士后,现为威廉与玛丽学院教师。他一直为物理、数学和计算机专业的本科生讲授“科学家的实用计算”课程。
内容简介
本书分三个层次进行内容组织:计算基础、使用MATLAB解决日常生活问题、深入研究和扩展。计算基础部分除了介绍MATLAB的基础知识,还包含计算历史和编程语言的简要介绍,以及良好的编程实践。这部分内容凝练了大学中常开设的“计算机基础”和“计算机科学导论”等课程的精华。第二部分主要涉及线性代数方程求解、数值求导、求根算法等内容,利用高等数学和线性代数等课程的基本知识,简单快速地解决日常生活中的常见问题。*后一部分是关于MATLAB的深入研究和扩展,介绍了随机过程、蒙特卡洛仿真、优化问题和离散傅里叶变换等内容,当你深入到实际科学研究和工程项目时都会用到这方面的内容。
前言/序言
目标读者
本书适合任何想学习MATLAB编程的读者。如果你正在寻求关于编程、MATLAB和数值方法的简明易懂的教程,那本书正好适合你。我们希望读者能在这里找到处理日常计算和程序设计问题的必要知识。即使是经验丰富的读者也能从书中得到对常见方法的有用见解,找到可能遇到的困惑问题的解释。
我们从简单的概念开始,帮你逐步掌握建模、模拟和分析真实系统的技能。此外,还概述了成功的科学或工程工作所必需的数值方法。本书帮你熟悉计算的“学问”,这样当你决定学习高级技术时,会知道该学习什么。
本书是根据“科学家的实用计算”(Practical Computing for
Scientists)课程材料编写的,该课程为威廉与玛丽学院开设的一学期课程,教学对象为尚未确定主修学科的学生,以及物理、神经科学、生物学、计算机科学、应用数学和统计学或化学等专业的学生。成功学习这门课的学生水平也不相同,有的是大一新生,有的是大四毕业生,有的介于两者之间。
为什么选择MATLAB
我们选择MATLAB作为编程语言,是因为MATLAB对一些已实现的功能有很好的平衡,这些功能对科学家来说非常重要又易于学习。MATLAB为用户隐藏了许多底层细节,你不需要考虑变量类型、编译过程等。MATLAB使用起来就是这么便利,它可以在不跟踪每个元素的情况下对整个数组进行计算,这正是MATLAB的核心。
从教师的角度来说,你不必为学生安装MATLAB而担心。软件安装过程很简单,学生都能独立完成。更重要的是,MATLAB在Windows、Mac和Linux等操作系统中的界面和工作方式都一样,在不同计算机上产生的结果完全相同。
从学生的角度来说,MATLAB可能是从事工程或科学研究工作*常用的编程语言。因此,如果你现在学习MATLAB,或许就不需要再强迫自己学习其他行业标准编程语言了。
MATLAB的主要缺点是价格昂贵,如果学校或单位不能提供,就得高价购买了。但这不是一个大问题,你可以选择免费的替代软件GNU
Octave。本书所有章节的练习,除了数据拟合外都可以通过Octave完成。Octave中的数据拟合使用了一套不同的命令,其他部分和MATLAB的工作方式相同(对于一些高级选项可能需要稍作调整)。
本书不包含哪些内容
本书没有广泛介绍MATLAB命令,因为MATLAB已经有一个很好的手册,我们没有必要再编写一本,也无须重做一个在线教程。
本书也不能代替讲解数值方法的来龙去脉的书。我们尽可能讨论可以用数值方法完成的有趣的事情,而不必关心*有效的实现方法。然而,这本书的开头是个例外——通过数值算法的实现解释了一些编程基础知识,这些算法大多是MATLAB的内置函数。
如何阅读本书
如果你不是编程新手,可以跳过第一部分的大部分内容,但是要确保熟悉其中的元素操作、数组操作与数组元素操作之间的区别以及数组切片等内容。
如果你是科学家,那么绘图和数据拟合是必须掌握的。请务必阅读第6章。如果需要学习关于数据分析的重要内容,也需要学习这一章。
MATLAB程序设计
内容简介
本书展示使用MATLAB解决各种典型问题的方法和技巧,不仅指导读者编写清晰、高效、良好的MATLAB程序,还介绍了大量MATLAB的实用函数。全书共9章,前7章涵盖MATLAB的基本概念和实现,后2章引入更多的高级应用。本书内容全面,通俗易懂,适合作为工程和计算机专业教材,同时也可作为广大科技工作者掌握MATLAB计算工具的自学用书。
作者简介
斯蒂芬
J.查普曼(Stephen J.
Chapman)拥有路易斯安那州立大学电气工程学士学位、佛罗里达中央大学电气工程硕士学位,并在莱斯大学进一步深造。他曾供职于美国海军、休斯敦大学、MIT林肯实验室,目前在墨尔本负责澳大利亚BAE系统建模和运营分析,开发了一个军舰自我防御的模型,这个模型包含超过40万行的MATLAB代码且运行了十余年。他是电气和电子工程师学会的高级会员,也是澳大利亚工程师学会的会员。
目 录
Essentials of MATLAB Programming, Third Edition
出版者的话
译者序
前言
第1章 MATLAB简介 1
1.1 MATLAB优势所在 1
1.2 MATLAB不足之处 3
1.3 MATLAB工作环境 3
1.3.1 操作界面 3
1.3.2 命令窗口 4
1.3.3 工具栏 5
1.3.4 命令历史窗口 6
1.3.5 文档窗口 6
数字逻辑设计与计算机组成
内容简介
本书从简单的数字逻辑电路设计基础开始,由浅入深,讲解组合逻辑和时序逻辑电路的设计技术、计算机组成的基本原理和计算机体系结构的相关概念,后深入探讨了现代计算机系统如何利用硬件支持安全的体系结构。书中通过大量实例揭示作者对现代计算机设计目标的理解,展示如何应用流水线和并行化技术提升并发处理能力,并阐述了处理器体系结构与编译器、编程方法和性能之间的关系。本书可作为高等院校“数字逻辑与计算机组成”相关课程本科生、研究生教材,也可作为电子信息类相关专业人士完整理解计算机系统的整体组成和硬件工作原理的参考书。
作者简介
Nikrouz
Faroughi,加利福尼亚州立大学萨克拉门托分校教授、计算机科学系研究生专员和计算机工程专业教师。从密西根州立大学获得计算机工程学士学位、计算机科学硕士学位、电子工程硕士学位和计算机工程方向的电子工程博士学位。曾任职系统分析师,并曾作为顾问和技术经理在英特尔公司工作,目前在该公司兼职。
目 录
Digital Logic Design and Computer Organization with Computer Architecture for Security
出版者的话
译者序
前言
致谢
第1章 导论 1
1.1 简介 1
1.1.1 数据表示 1
1.1.2 数据通路 5
1.1.3 计算机系统 5
1.1.4 嵌入式系统 7
1.2 逻辑设计 7
1.2.1 电路*小化 8