使用面向对象方法和技术(如DDD领域建模和Java语言技术)是为了更快更高质量的响应客户需求,以达到敏捷,而通往敏捷之路的第一个关键点是树立面向对象思维,面向对象思维和面向数据库思维主要区别是:前者以动态行为来看待事物,后者以静态思维看待事物,注重事物的最后状态,而不是引起事物状态的原因:事件或行为,由于面向对象紧紧能抓住需求内部本质,所以才使得软件能够更加易于维护和拓展。
很多人使用了很长时间的Java如Spring Hibernate,但基本还是基于数据库编程,使用SQL语句实现存储和计算查询,业务核心严重依赖关系数据库,最后当系统访问量增加时,系统性能急剧下降,同时需求变化时,更改数据表结构和SQL语句,一发动全身,耗费大量时间和精力,根本无法体现敏捷方法和技术带来的优点,这些都是因为没有掌握正确使用方法。
在面向对象思维中,内存才是对象的主要活动空间,而数据库只是对象休息睡眠(hibernate)的地方,或者说持久保存的地方,如果我们反其道行之,必然带来系统复杂棘手的大量问题。
面向对象和面向过程是有本质区别的,面向过程只是会编程,而面向对象才体现程序员专业水准,面向对象从软件的分析到设计及其编程单元测试,都已经有一套成熟可行的简便方案,可是我们由于接受传统滞后的教育原因,我们编程都只是从建立数据表结构开始,这种方式只适合小规模系统,当系统变大后,就需要重写,带来大量时间和金钱的浪费。而且习惯了面向过程和面向数据库的编程思维,要转变到面向对象思维上来,阻碍相当大,比登天还难,这就是现实中为什么大量都是基于数据库系统的原因。
面向对象的本质是逻辑分析哲学,现代逻辑学是面向对象的元语言,见这里讨论。
罗素摹状词理论与面向对象OO 逻辑分析是面向对象思维的本质。
蒯因与引用透明 很多人只知道数学,而不知道数学后面的哲学与形式逻辑,就把我们编程语言中的这些约束和数学划上关系,实际上真正有联系的是数学背后的形式逻辑,或称符号逻辑。
快速适应需求变化的软件复用 本文总结了软件复用的不同层次:设计复用、组件架构复用以及业务模型复用,复用技术 的不断发展正是由于适应变化需求的要求不断提高导致!
重用之梦破灭了吗?
软件最大的追求是什么? 从我们学会玩编程这个玩具开始起,我们就面临两种选择:一种朴素的、无需训练的、近似自然的“紧耦合”路线;一种是经过科学培训的“松耦合”道路。
用OO方法解一道算术题 本篇主要为说明使用面向对象的分析和设计方法可以帮助更快地认识事物,更快地排除编程设计过程一个个拦路虎。
你还在用if else吗? 是否大量使用if else语句,标志着一个程序员的面向对象思维是否走向成熟,也表明着他到底是否真正摆脱了传统面向过程或面向数据库的思维方式。
UML统一建模语言
面向函数式编程(Functional programming)
框架专题讨论
设计理论专题
对象生命周期专题讨论
更多关键词....