最近一个月左右的时间,在学习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的实现。使用它们最大的好处可能就是加速开发和易于后期维护吧。
分享到:
相关推荐
### Java框架研发思考 #### 背景与动机 在软件工程领域,特别是在Java平台下进行应用开发时,框架的研发不仅是技术挑战的体现,更是对未来技术趋势的一种预测和引导。本文作者彭晨阳分享了他在开发Jdon框架过程中...
【Java框架研发思考】 本文由彭晨阳撰写,回顾了他开发Jdon框架的心路历程,分享了在Java开发中的经验和教训,对于Java开发者尤其是面试者具有一定的参考价值。Jdon框架的诞生源于对Web应用多层架构复杂性的反思,...
对JavaScript框架的再思考 本文讨论了JavaScript框架的再思考,云计算概念的影响,云计算的定义、特点和应用场景,以及JavaScript框架在前端开发中的思考。 云计算概念的影响 云计算是一个热门的概念,它给企业...
- Spring JDBC学习:为了与数据库交互,学生将学会如何使用Spring框架来访问数据库,虽然最终会使用MyBatis框架,但在此阶段可以做一些基础的数据库业务逻辑交互。 总的来说,本文提出了一种结合传统教学与实践相...
商业计划书写作框架与思考方法概述.pptx
【前端框架的介绍与思考1】 前端框架是现代Web应用开发的重要组成部分,它旨在提高开发效率,优化用户体验,以及解决裸用特定库或框架时出现的问题。本文将探讨WLJ框架的发展历程、运行机制和设计原则,以揭示前端...
JAVA集合框架,java框架总结,java集合框架,java集合框架学习,java集合框架类
关于我国税务会计理论框架的几点思考.docx
云原生与SASE 零信任 新框架 新思考.pdf
区块链研究框架的新思考.docx
标题中的“一个Java框架引发的思考:语言、框架、范式转换和软件生产力”提示了本文将探讨一个特定的Java框架,并由此引申出关于编程语言、开发框架、编程范式以及它们如何影响软件开发效率的主题。从描述中提供的...
云原生go-zero微服务框架设计思考是由万俊峰Kevin分享的关于go-zero微服务框架的设计原则和实现细节的报告。本报告涵盖了go-zero的设计原则、架构选型、微服务代码生成工具goctl、通用API定义规范、缓存设计、服务...
### 关于回归的一些学习思考 #### 一、引言与背景 回归分析是数据分析和机器学习领域中的一个重要组成部分,它帮助我们理解变量之间的关系,并基于这些关系进行预测。本文档探讨了一个新的数据科学框架——“预测...
综上所述,《自己动手写前端框架》不仅是一本关于Tiny框架的技术书,它还涵盖了前端开发的多个方面,包括框架设计、开发实践、性能优化、测试和文档编写等,是一本对前端开发者具有指导意义的实践手册。
【中美游戏行业研究框架及思考】 游戏行业是文化传播领域中的一个重要组成部分,特别是在信息化时代,它的发展受到技术进步、用户需求变化、政策环境等多方面的影响。本报告主要探讨中美两国游戏行业的研究框架,并...
运用车联网技术 促进车险转型发展——基于商业车险改革大框架的思考.pdf
构建思维整体框架和逻辑的核心在于形成概念模型,这是对事物本质和主干的理解,是深化思考和拓展知识的前提。一个清晰的概念模型能够帮助我们更好地理解和掌握复杂的信息,从而在此基础上构建出完整的知识体系。知识...
框架:战略思考、澄清与解码落地规划.pdf