JiveJdon Community Forums
在线172人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 10 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
fety07

发表文章: 35
注册时间: 2007年10月18日 14:40
给他发消息
面向对象范式需要数学思维吗? 发表: 2007年11月09日 10:32 回复
大多数程序员都被灌输这样一个观念:一个合格的程序员数学要好.在面向对象范式成为软件开发的主流的时代,需要学好数学吗? 我更认同编程是一种艺术,尤其是现在的DDD,提供了更大的发挥空间. 数学本质上是"抽象",我们的建模也是"抽象",但这两种抽象过程是截然不同的思维过程.个人观点
wlmouse

发表文章: 116
注册时间: 2006年11月09日 15:58
给他发消息
re:面向对象范式需要数学思维吗? 发表: 2007年11月11日 09:16 回复
数学模型主要指的是算法。如果你需要对算法进行设计就必须对数学精通。不过现在绝大多数情况下,我们考虑的多是程序结构。一般常见的算法经过多年的发展,已经很成熟了。基本上直接引用就可以了。
fety07

发表文章: 35
注册时间: 2007年10月18日 14:40
给他发消息
re:面向对象范式需要数学思维吗? 发表: 2007年11月12日 08:41 回复
认同wlmouse的看法.

我们运用面向对象思维进行软件开发,主要是为更好的解决应用领域问题.应用范围不同解决思想就不同,DDD一书说到"不要试图对任何事情都进行领域驱动设计",j道有一篇文章说到了这个问题.

http://www.jdon.com/mda/oo_relation.html
数据表建模属于数学范畴思维;而OO建模属于哲学思维

killer

发表文章: 106
注册时间: 2007年07月17日 15:40
给他发消息
re:面向对象范式需要数学思维吗? 发表: 2007年11月17日 17:00 回复
我觉得面向对象的思维和数学思维并不是相互排斥的,而是相通的。数学思维说到底也是一种逻辑思维,用数学方程的方式对现实世界的领域逻辑进行建模,最后体现的也是一套概念,判断,推理所构成的理论体系,具有形式化的特点,可操作性强,输入真实性的前提,就一定能得出真实的结果。比如x+y = z ,用真实的x和y值代入方程,结果x的值是唯一的。而我们的软件系统又何尝不是一个逻辑系统呢,说到底,我们的软件就是一个符号语言逻辑系统,只是把x,y等换成了一些程序语言的标识符,把加减乘除换成一些逻辑操作符而已,面向对象也只是把这些标识符和操作符再封装了一层,给定特定的输入值,我们的软件系统所跑出来的结果也是确定的。只是我们的符号语言系统形式化水平更高而已,能准确地表示逻辑形式,还能提高我们思维的速度和效率。

所以,面向对象思维并不是和数学思维排斥的,只是提高了数学思维的层次而已,不再是纠缠于具体的公式和算法,而是把整个业务领域当做一个方程来解而已。我们通常觉得两者相互排斥,是因为所站的水平线高低不同而已。
youway

发表文章: 12
注册时间: 2008年07月13日 15:15
给他发消息
re:面向对象范式需要数学思维吗? 发表: 2007年11月21日 14:53 回复
数学思维绝对有用,有用的程度取决你个人本身对数学认识的程度。
计算机理论的很多词汇本身就源于数学。
比如每个对象都有函数,就是表面看起来没有,它也有默认构造函数。
OO中,虽然我们用所谓哲学思维来构造对象,但最终对象如何构造的合理,那是要让对象之间行为有利于操作的,更是有利于计算的。
OO中,你能说出行为/操作/方法/函数到底有什么区别吗?
然而他们都有潜在的实质。

函数公式大家都清楚:y = f (x) x属于定义域,y属于值域,f是function的简写.
写程序,你必然会关注输入,输出,在程序里输入输出的基本构成就是函数。x可看作输入状态数据,y当然就可看作输出状态数据。

在对象中,状态/属性/数据其实也说的是一回事。

回过头来看,对象中的属性和操作两部分,与y=f(x)有哪些相似性呢?

还有关于MVC, 多说两句,View称为视图层,视图其实就是状态数据+显示,状态数据就是x,y两部分,请求request是x, 响应respone是y.

Model称为模型层,那到底模型是什么呢?
从某种程度可以看作 y = f(x) ,再加上x,y所属的集合:定义域,值域。

control控制层起什么作用呢?就是根据客户那一边发起的输入状态以及相关信息,来指定服务那一边哪个模型去匹配,并控制模型向试图传回相应。

简单就这样讲讲。

至于数学思维具体在OO中怎么去应用,这都很难讲,因为这取决你用线性思维去思考,还是用发散思维去思考,而后者是和个人的思维特质和所能涉及的思维素材有密切关系的。
另外,数学本身这个学科的领域非常之广,所谓数学思维就可想而知了。
从一个侧面可以略窥一斑,古往今来有多少有着数学家身份的同时,还有这哲学家的身份:亚里士多德,莱布尼茨,牛顿,开普勒等等。你能区别开,这些人的思维是哲学的,还是数学的?
killer

发表文章: 106
注册时间: 2007年07月17日 15:40
给他发消息
回复:re:面向对象范式需要数学思维吗? 发表: 2007年11月22日 20:00 回复
数学思维肯定是有用的,但它针对的问题域要小一些,面向对象的分析设计主要还是系统思维和发散思维。数学思维是在前两者的前提下针对具体问题域的解决方法。
fety07

发表文章: 35
注册时间: 2007年10月18日 14:40
给他发消息
re:面向对象范式需要数学思维吗? 发表: 2007年11月23日 13:36 回复
youway用数学的思想来解释OO,这样的解释未尝不可.我们就把"最终对象如何构造的合理,那是要让对象之间行为有利于操作的,更是有利于计算的."当成y = f (x),我们所有的软件都是围绕这个公式转的. "x"如何到"y"的.这个我们已经不用去关心,可以说我们不必要去关注这个抽象,计算机已经帮我抽象好了,关键是我们要关注的是x,即"定义域",在软件中就是"问题域",好,如何抽象出"x",在软件中就是抽象出"
对象",如何构造的合理,我想这个过程恐怕是不能单纯用数学来解释的,如果可以,那么前人总结的设计原则为何叫"原则",而不叫"定理"呢,如果真能用数学来推理,那么OO就不可能像现在一样"百花齐放".


所以killer这段话值得思考一番:

->> "所以,面向对象思维并不是和数学思维排斥的,只是提高了数学思维的层次而已,不再是纠缠于具体的公式和算法,而是把整个业务领域当做一个方程来解而已。我们通常觉得两者相互排斥,是因为所站的水平线高低不同而已。"
szalucard

发表文章: 3
注册时间: 2007年09月29日 13:10
给他发消息
re:面向对象范式需要数学思维吗? 发表: 2007年11月30日 09:59 回复
底层开发的发展离不开数学。
oo是上层,貌似的确不用太过考虑
不过处理细节的时候不得不承认数学的思维方式还是很有用处的
[该贴被szalucard于2007-11-30 10:01修改过]
slm2000

发表文章: 1
注册时间: 2007年12月03日 13:57
给他发消息
re:关于支付模型 发表: 2007年12月03日 13:58 回复
fety07 ,你好:
我想与你讨认一下支付模型, 联系我: msn:slm2000@vip.sina.com
**:335460870
fety07

发表文章: 35
注册时间: 2007年10月18日 14:40
给他发消息
回复:re:关于支付模型 发表: 2007年12月04日 08:55 回复
我们可以到这个板块,和大家一起讨论,效果更好.

http://www.jdon.com/jivejdon/thread/32896.html
[该贴被fety07于2007-12-04 08:59修改过]
yqj2065

发表文章: 10
注册时间: 2007年12月17日 02:43
给他发消息
re:面向对象范式需要数学思维吗? 发表: 2007年12月17日 02:51 回复
面向对象范式需要数学思维吗?

当然。特别是你使用函数式面向对象的语言的时候
这个主题有 10 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam