leoding
leoding
MathTools
 [书籍推荐] MATLAB面向对象编程-从入门到设计模式
2015年01月27日11:42:16 星期二

 

MATLAB 中文论坛创始人math:该书的第一位受益者的书评

作者以非常通俗的例子诠释了如何实现MVC 的过程,就是大家现在所看到的该书第7 章:分离用户界面和模型。我在使用的过程中,充分地感受到了MATLAB 面向对象编程的强大。我大概花了10 小时的时间,就把2009 年的系统架构改成了MVC 的架构。2013 年8 月,我把新的架构展示给了土壤所负责系统开发和维护的研究小组。该研究小组成员对MATLAB语言了解不是很多,但是这并没有阻碍他们开发系统,因为我们已经完全把算法的模型(Model)、界面视图(View)以及如何实现用户输入的获取(如键盘、鼠标事件)这三者完全分开,放在了不同的类(Class)中。研究小组在一个星期之内就掌握了系统的架构,并且能独立地对系统进行开发和维护。以上是我的亲身经历

读者评价:

MATLAB5年以上编程经验,强烈推荐这本书。不同于市面上其他一些MATLAB书籍基本靠翻译Help文档,这本书的作者确实花了很多精力介绍自己的经验和理解。 在作者通俗易懂的案例下,我对于MATLAB面向对象编程技术有了更加深刻的理解,现在已经开始使用面向对象编程技术, 强烈推荐,MATLAB高级编程者使用此书”

"本书非常实用,之前一直使用面向过程编程,总是无法合理调节各项参数。看了面向对象才知道什么事高端优雅编程!"

“这本书等了很久了。math一发朋友圈。就果断买了”

“关于matlab面向对象编程的非常推荐的一本书”

"作为一名学生,我一直很喜欢北航出的技术类书籍,不仅质量比较好,内容充实,与其他的书籍最大的不同就是能从初学者学习的角度来阐述问题,是学习不可多得的好书。本书也是一样,由浅入深,逐层剖析,又不局限于编程和实现细节,加入了很多编程思想和方法,这是一般技术书籍不具备的."

"后面的介绍面向对象的功能真的很引人入胜."

“粗略看了一遍,感觉不错,所选“面馆”的例子生动形象,贯穿始终,将面向对象的思想讲得很透彻,原来许多模棱两可的概念现在清楚了,感谢作者的辛勤劳动!”

为什么要学习MATLAB面向对象编程?先问自己以下9个问题

==问:目前图书市场中有关MATLAB 的书籍已经很多了,为什么还要写这本MATLAB 面

向对象编程的书?

==答:区别于目前图书市场中其他的MATLAB 语言编程和专业工具箱MATLAB 编程的

书籍,本书是第一本中文版MATLAB 面向对象编程的书籍。我们更注重的是利用MATLAB

提供的面向对象编程的语言来介绍MATLAB 的编程思想,从而帮助读者提高对于MATLAB

编程的运用深度。

==问:我是理工科学生,MATLAB 对我来说很简单,为什么我还要学习MATLAB 面向对

象编程?

==答:虽然MATLAB 提供给用户的语法是简单的,使得用户上手快,但是这并不代表我

们要解决的科研问题的方法是简单的。除了常用功能之外,MATLAB 还有很多强大的功能

有待我们学习和运用,从而解决更复杂的问题。本书主要面向的读者群中包括理工专业的学

生、学者,我们希望通过介绍MATLAB 面向对象编程来帮助他们更好地解决科研中的问题。

或许你曾有这种感觉:在科研和学习中,所写的程序一旦到达一定的规模,维护起来就会很

困难,调试越来越慢。随着科研项目不断有新的要求,程序需要不断地修改和扩展;函数多

达上百个;一旦有修改,则牵一发而动全身;有的时候,一个小的扩展甚至都需要做伤筋动

骨的修改。MATLAB 面向对象编程和设计就是专门帮你解决这种问题的。本书的重点不是

介绍某个函数或者技巧,而是介绍怎样从整体上去设计程序,小到一个家庭作业、一两个星

期的项目,大到硕士或者博士的毕业设计、多人合作的项目。面向对象的思想会把你从繁重

的程序维护中解脱出来,让你的注意力集中于真正需要解决的问题上,把需要解决的问题解

决好。我们不是为了学习面向对象编程而学习面向对象编程,作为科研人员,我们都以高效

务实为目标,如果一种技术能够让我们仅投入少量的时间去学习,并且学会了之后能让我们

的科研工作如虎添翼,让我们有更多的时间去做其他事情,那么何乐而不为呢?

==问:面向对象编程难道不是只有计算机专业的人才用的吗?

==答:因为面向对象可以更好地解决软件设计问题,所以面向对象编程语言是计算机专业

背景科研人员的一个自然选择。但是面向对象的方法并不是软件行业所独有的,任何学术背

景的研究人员都可以使用面向对象编程,去解决各自行业的学术问题。目前主流的面向对象

编程语言(如C++ 和Java)学习周期比较长,烦琐的语法将面向对象的方法和设计思想隐

藏了起来,大多数非计算机专业背景的研究人员没有时间和精力先熟练掌握C++ 和Java 的

语言,然后再学习面向对象的编程思想,进而用到实际的科研工作中来。其实在工程科学计

算中,MATLAB 才是主流的语言。MATLAB 从R2008a 之后开始提供新的面向对象的编程

方法,给用户提供了一个宝贵的机会,能够避开烦琐的语法,直接接触到核心的面向对象编

程和设计模式的思想。所以,使用MATLAB 语言,不具备计算机的专业知识也能学会面向

对象编程和设计模式,而本书将成为你掌握它们的一座桥梁。

==问:学习MATLAB 面向对象编程需要有什么样的基础?

==答:本书的第一部分就是要让具有初级的MATLAB 语言基础的读者能够迅速且一步到

位地把面向对象的思想渗透到自己的编程习惯中去。其实,只要懂得什么是变量,什么是函

数,就完全能够开始学习MATLAB OOP 了。对于有经验的读者,就是那些熟悉MATLAB

语言和各种工具箱(Toolbox)的读者,本书的中级篇和设计模式篇能够使其更深入地了解

MATLAB 的体系,提高自己对程序的总体设计能力,做到事半功倍。

==问:学习面向对象编程是否要花很多时间?我还有研究课题要做,没有那么多时间怎么

办?

==答:本书的作者都是理工科的背景,十分懂得如何用最少的时间学习最多的知识,也深

知怎样有效地引导初学者成为精通者。我们期望的是让读者用最短的时间入门面向对象编

程,以最小的成本学会面向对象编程的中级基础,并且能够顺利地进入到编程思想的学习当

中去,越过面向对象编程语法上的障碍,真正地使用面向对象的编程方法。我们还尽量地让

书中内容的编排便于查找,读者可以跳跃性地阅读自己所需要的内容。当工作变得复杂,需

要更多MATLAB 面向对象编程语言特性时再回过头来查找。

==问:面向对象编程难学吗?我要学多久才能把它用到实际的编程中?

==答:学习的难易与否主要看基于什么编程语言,目前主流的面向对象的编程语言,如

C++ 和Java,语法和编译细节很烦琐,使得面向对象的思想被隐藏了起来。然而,MATLAB

的面向对象语言的支持提供了前所未有的机会,让我们能够迅速地越过这些障碍,真正学到

编程的思想。众所周知,学习一门程序设计语言不但需要学习语言的语法,还需要不停地实

践。本书将引导读者将这种编程思想融入到具体的程序书写中,并立刻将其应用到自己的编

程中去,哪怕是一个简单的曲线拟合、图像生成和优化。另外,把已有的程序转化成面向对

象的程序也不是一件麻烦的事情。我们在附录中将通过一个综合实例介绍如何把一个中型规

模的MATLAB 面向过程的程序转成面向对象的风格。总而言之,自己的科研课题就是实践

编程思想的最好平台,好的编程思想可以让科研工作事半功倍。MATLAB 作为一种高级的

工程科学计算语言,提供了在以往只有CS 专业背景的人才能够具有的实现编程思想的机会。

==问:采用面向对象的方法会不会降低我的编程速度?

==答:良好的设计才是快速开发的根本。如果没有良好的设计,或许在一段时间之内,使

用面向过程的方法编程进展很快,但是糟糕的设计会很快让速度慢下来。因为面向对象编程

需要花大量的时间在调试程序上面,而无法添加新的功能,最终修改的时间将越来越长,最

初的程序中被打上一个又一个的补丁,新的特性需要更多的代码才能实现。而面向对象的编

程方法可以有助于提高程序设计的质量,从而加快开发速度。

==问:MATLAB 的面向对象编程与C++ 和Java 的面向对象编程有什么不同吗?

==答:MATLAB 是一款商业软件,提供面向对象编程的支持,这与C++ 和Java 有本质的

不同;C++ 和Java 给用户提供“基石”,用户需要花大力气去首先学习其语法,然后学用这

些“基石”的组合来解决复杂的问题,这需要深厚的基础知识和大量的时间,而大部分的科

研工作者没有这样的时间和精力去专门学习一门语言来帮助他们解决问题。MATLAB 提供

了这样一种渠道:把这些基石进行复杂的组合,然后当做语言的特殊功能提供给用户。用户

只需要对这些特殊功能稍加了解,就可以很快掌握,并能在有限的时间内,以最高的效率完

成任务。本书还会简单解释这些特殊的功能来自何方,大概是怎样实现的,目的是为了帮助

读者更好地理解和使用这些功能。

==问:面向对象编程和书中的设计模式是一回事吗?

==答:面向对象是相对于面向过程的一种编程方式,是一种系统化编程的思路,教用户一

开始就去系统化地设计程序。设计模式是建立在面向对象基础之上的针对一些常见的复杂问

题的核心解决方法¬。问题再复杂,都可以被分解成小的部分加以抽象,然后使用设计模式

来高效地解决。有时解决问题的方法甚至可以是多种设计模式的结合,如果你能把这些套路

使用在自己的科研工作编程中,你的科研工作必将如虎添翼。

==问:MATLAB 面向对象编程不是有一本英文的用户手册吗,你们的这本书和这本英文

手册比有什么优点?

==答:本书部分参考了英文MATLAB 面向对象编程用户手册中的内容,并且在此之上做

了大量的改进,使其更适合理工科用户学习和阅读。具体说来:第一,这本用户手册有600

多页英文,通读起来不是一件容易的事情;第二,它只介绍了MATLAB 基本的面向对象技

术,没有介绍设计模式,而设计模式才是真正利用OOP 的试金石;第三,因为OOP 和设计

模式已经是很成熟的技术,我们在向读者介绍编程思想时,还参考了大量C++ 和Java 面向

对象编程和设计模式的书籍。我们相信这本中文的MATLAB 面向对象编程将比英文手册更

加适合中文读者,而且学习和阅读的成本很低,我们的目的就是让读者花很少的时间和精力

去学习并且掌握MATLAB 面向对象编程。

《MATLAB面向对象编程--从入门到设计模式》已经由北航出版社正式出版。购买网址如下:

京东

http://item.jd.com/11593491.html

天猫

http://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.2.jjzgRc&id=42978851700&skuId=4611686061406239604&areaId=320100&cat_id=2&rn=9683c2ad898b5141a7e19b1d65ed4c50&user_id=370982852&is_b=1

亚马逊

http://www.amazon.cn/gp/product/B00QLEZSME/ref=s9_simh_gw_p14_d1_i1_gs9w?pf_rd_m=A1AJ19PSB66TGU&pf_rd_s=center-2&pf_rd_r=1CHFJBD7BC9PGD6TC25G&pf_rd_t=101&pf_rd_p=247027532&pf_rd_i=899254051

--

※ 来源:·日月光华 bbs.fudan.edu.cn·HTTP [FROM: 75.66.30.*]