关于软件的思考(一)---面向对象、模式、框架
类别: JAVA教程
软件是什么?这是一个很难说明的问题。简单的说,它是一些有逻辑的计算机代码。但是从另外的角度来说,它也有很多种意义也存在多种迷惑。比如,软件是不是一种工具?它和人的思维到底是什么关系?他应该不应该有个性甚至于有生命?软件的未来是什么样的?软件和人未来会是什么关系?
人类对于计算机软件的研究已经有几十年的历史,但是感觉上还是在软件发展的初级阶段。软件的发展方向不明确,软件自身的很多问题从产生以来就一直困扰着开发者。人们发明了多种开发语言,也发明了面向过程和面向对象两大类开发方法。这些对软件的开发都有里程碑式的意义,但是还不够。比如面向对象的方法论,它准确描述了从客观世界到软件基础代码的映射关系,有非常基本的意义。但是这远远不够,就像我们盖一座房子,除了要有砖瓦之外,还需要建筑图纸。面向对象的方法论就是盖房子用的砖瓦,砖瓦有了,房子盖成什么样,还是要看建筑图纸,我们现在缺的,就是好的建筑图纸。所以说,光有面向对象的方法论,或是仅仅沉迷于它的研究,就希望能够有好的软件,是非常短视的想法。
那么,好的软件设计如果不是指面向对象这样的方法论,那是什么?好的建筑图纸从哪里来?当然,一种好的途径是从经验中来。这方面的工作人们也作了一些,比如模式和框架,这些都是一些很好的东西,但是有一定的局限性,它们的注意力主要集中在局部,作出的东西是一些组件,好比建筑中的标准件。更好的做法是着眼于全局,创建一些软件级的标准模式或框架。但是这种做法在带来快速开发的好处的同时又失去了个性化,好像人们无法忍受整个城市的房子使用同一张图纸一样。
如何解决这个问题呢?方法之一是找到具有足够灵活性的框架。这种框架的结构要坚固,同时又很容易作个性化的工作。使用这种框架的软件都有类似的结构,但是又能满足各自不同的要求。正好像一个城市的房子都有类似的外观和结构,但又各各不同,不但不让人觉得枯燥,反而这体现了这个城市的风格一样。我们现在有一些类似意义上的框架,如J2EE、.NET,但是没有很好的体现上述理念。
- 上一篇: 老康:Java开源项目Hibernate快速入门
- 下一篇: Pervasive Java
-= 资 源 教 程 =-
文 章 搜 索