`
sdlgxxy
  • 浏览: 44881 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

自己关于框架的一些思考

阅读更多

       最近一个月左右的时间,在学习Struts2这个框架,然后从不明白什么是框架到现在就想说一点自己学习的感受。

       从最开始说起吧,从学习java以来,到了J2EE这个领域,听到最多的SSH这个名词,当时确实是不明白这时什么东西,只知道这些都是“框架”,但是框架是什么呢?开始是一个很模糊的概念,框架是什么?解决了什么问题?有什么作用,它的好处是什么?每一个疑问我都急切的想知道答案,其实是直到今天中午才真正的感觉概念有点清晰了。

GoF(设计模式) 写道
       框架规定了你的应用的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。框架预定义了这些设计参数,以便于应用设计者或实现者能集中精力于应用本身的特定细节。框架记录了其应用领域的共同的设计决策。因而框架更强调设计复用,尽管框架常包括具体的立即可用的子类。
       这个层次的复用导致了应用和它所基于的软件之间的控制反转(inversion of control)。当你使用工具箱(或传统的子程序库)时,你需要写应用软件的主体并且调用你想复用的代码。而当你使用框架时,你应该复用应用的主体,写主体调用的代码。你不得不以特定的名字和调用约定来写操作地实现,但这会减少你需要做出的设计决策。
忘了在哪看到的了 写道
      框架软件设计的目的是将一个领域中不变的东西先定义好,比如整体结构和一些主要职责(如数据库操作 事务跟踪 安全等),剩余的就是变化的东西,针对这个领域中具体应用产生的具体不同的变化需求,而这些变化东西就是J2EE程序员所要做的。

    后来看downpour大哥的系列文章里面有一段话我也是印象深刻

downpour 写道
     框架是为了解决一个又一个在Web开发中所遇到的问题而诞生的。不同的框架,都是为了解决不同的问题,但是对于程序员而言,他们只是jar包而已。框架的优缺点的评论,也完全取决于其对问题解决程度和解决方式的优雅性的评论。所以,千万不要为了学习框架而学习框架,而是要为了解决问题而学习框架,这才是一个程序员的正确学习之道。

    结合Struts2的学习,然后我的总结如下,可能有些地方理解的也不对。

     1.首先,framework不同于工具类,工具类是被动的,我们作为主体,去调用相应的工具类来实现某些功能,而框架作为一个主体,它的作用就是调用我们的类。这一点在我引用的第一段话中有所体现。

     2.框架预先定义了一些不变的东西,我们可以理解为它只是搭建了一种结构,当你在开发时,需要去适应它的这种结构,就象建筑开发商刚改的房子,没有门窗和装修,这只是一个大的架构,当你要去完善它的时候,你需要遵循它的某种规范。比如,你要给新房子装一个门,你必须要按照它的标准去造一个门或是去买一个门。

     3.IoC和DI同样很有意思,几乎框架都会有这个特性,比如在Struts2中,针对于某个Action,对于具体的数据模型,你不需要创建他们的实例,只要你按照某种方式按某种约定来进行编程,框架本身就会帮你完成一些基本的工作,比如接受客户端的请求参数,并放到相应的对象中去。

     最后说说框架解决了什么问题以及使用它们的好处。首先就想downpour说的,框架是为了解决某些问题而产生的,他们本身适合于解决某一类问题,对于Struts2来说它是MVC2的实现,主要是对VC的实现。使用它们最大的好处可能就是加速开发和易于后期维护吧。

 

0
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics