Java编程思想面向对象逻辑思维方法


  什么是面向对象的设计 思维? 兴许有不少初学者对这个概念还有许多不清楚的地方,特殊是这个处于新旧 思维交替的时代,许多人方才学完现在看来是快要淘汰的只不过面向过程的语言 。他们的脑子还没有脱离面向过程 思维的 禁锢, 仰头却发现,“面向对象”早已经 风行开来,这个 生僻的词漫天飞舞 。 随便拿起一本 风行计算机技术书籍,那里会没有“面向对象”的字眼!于是心中便惶惑了:什么叫“面向对象”?不有兴趣者,一带而过;有志于在这方面进展的,匆忙找到一本有关书籍来啃 毕竟什么是“面向对象” 。然而,要 打破 思维的 禁锢,说难也不难,说到要深刻 意识却也不方便 。小编在做了一些轻量级的工作后,颇 认为有点心得,不怕贻笑大方,写出已供 辽阔同行批判 教正 。

 

  “对象(Object)”一词,早在十九世纪就有 景象学 大师胡塞尔提出并定义 。对象是世界中的物体在人脑中的映象,是人的意识之所 认为意识的反映,是做为一种概念而存在的先念的东西,它还包含了人的 自愿 。举例 注明吧 。当我们 意识到一种新的物体,它叫树,于是在我们的意识当中就 构成了树的概念 。这个概念会向来存在于我们的思维当中,并不会由于这棵树被砍掉而消逝 。这个概念便是 事实世界当中的物体在我们意识当中的映象 。我们对它还 可以有我们自己的 自愿, 固然我们并不需求付诸实现—— 惟独在你的脑中想着把这棵树砍掉做成桌子、凳子等——我们就把它叫做 动向 。于是,对象便是客观世界中物体在人脑中的映象及人的 动向 。 惟独这个对象存在我们的思维意识当中,我们就 可以籍此推断同类的东西 。譬如,当我们看到另外一棵树是,并不会由于所见的第一棵树不在了失去了供参照的模板而不 意识这棵树了 。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象 。固然这个过程是怎么 构成的,那就不是我们所能 探讨的问题了 。上面所说的对象探究的是普通 意思上的问题, 因此它 可以外推到 所有事物 。我们 时常所说的“对象”,一班指的是解决信息领域内所遇到问题的 步骤 。特殊是 利用软件技术来决问题的 步骤 。如我们 时常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的 综合(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等 。 利用前面所介绍的关于对象的概念, 可以对这些问题做进一步的 综合 。在面对较复杂的系统,我们 可以将它作为一个对象来进行 综合 。一个系统(解决某个问题的全套解决 方案)作为一个对象, 可以由多个 部分构成 。同样,这个对象也 可以由多个对象构成 。关于同类的事物, 可以由一个对象来 示意 。这样做的 好处是明显的,它灵便而高效, 可以大大减轻设计人员的工作量,简化实际的模型 。举一个例子 。在关系型数据库的设计当中,我们 可以把一个元组当作对象,给它定义一组操作 步骤 。这些 步骤将 实用于全部元组,从而我们 毋庸在更大的 规模内去 详尽的考量不同的元组(如推断一个元素是不是合法):由于它们有一组公共的面向 本身的 步骤,它们“自己” 可以“解决”自己的问题 。更上一层的对象 可以是一个表、视图等 。表对象在元组对象的 根底上又有它们自己的 步骤,如添加、删除等 。从这个层面上讲,它也 惟独求做“自己”的 事件,由于有元组对象的 支撑,它 毋庸去考量像元素是不是合法这类的 事件 。甚至,有时为了满足我们还 可以将元素或表群当作时对象并定义它们自己的 步骤 。这样,更能显示面向对象的优势 。

 

  上面所 探讨的 可以说是面向对象的 综合 步骤 。在具体的设计过程当中,还应该采纳适当的 模式 。由于面向对象的 思维固然很先进,假如做得不好的话,同样不能达到预期的 动机 。这重要 体现在 解决对象与对象的关系上没有做好,对象与对象的 品位不 清楚 。如上面所举得关系型数据库得例子,假如在元组层面上得对象过多得考量一个表对象得因素,或一个表层面上对象过多地考量一个元组对象的因素,甚至去考量元素层面上的因素,这些都不是好的面向对象的设计 步骤 。这丝毫,在语言实现方面,Java比C++更有优势,由于它不同意多重继承,从而使对象中间的关系更明确 。谁也不会 否定C++的 性能更 壮大,然而它也要由次付出 硕大代价——当现在代码库进展到 定然程度、 定然规模时,个对象中间的 品位关系将变得 异样复杂,给后继 使用者得学习、 了解带来很大的 困苦, 利用上很难把握 。另外, 固然C++具备面向对象的 解决 威力,但它还是保留了众多面向过程的东西 。用C++ 彻底 可以不用面向对象的 思维来进行程序设计,固然人们不会这样去做——除了那些只不过把C++看成是C扩充的初学者,这就为以后的进展埋下了隐患 。在者一方面,Java的 制约更多丝毫 。就者丝毫还远远不够 。搞开发的是人,开发 步骤是由人决定的 。要 利用面向对象的 步骤开发出优异的软件,必须要求开发人员 存在良好的面向对象的 思维 。好的工程师 可以利用适当的工具开发出优异的软件——而不在乎他所 使用的语言工具——Java、C++、Object Pascal、Ada等 。