来自当知百科
跳转到: 导航搜索

目录

释义:

  1、注音 kuàngjià

  2、释义:(1)建筑工程中,由梁、柱等联结而成的结构;(2)比喻事物的组织、结构

  3、土木工程中,由梁、柱等构件刚性连结而成的结构体系

  2、比喻事物的组织、结构:这部长篇小说已经有了一个大致的框框。

土木工程中的框架

  (框,读kuàng,不读kuāng。)

  由梁和柱组成的能承受垂直和水平荷载的结构,梁和柱是刚性连结的。主要要用于工业与民用建筑物的承重骨架,桥梁构架或工程构筑物。

  一般指建筑工程中,由粱或尾架和柱联结而成的结构。由于我国古代家具自宋以后曾吸收古代大木构制的作法,故传统家具采用框档、立柱结构形式的即称框架,并将此类结构形式的家具称之谓“框架式家具”。

软件工程中的框架

什么是框架?

  框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。

  可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。

  构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物。在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。框架的关键还在于框架内对象间的交互模式和控制流模式。

  框架比构件可定制性强。在某种程度上,将构件和框架看成两个不同但彼此协作的技术或许更好。框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提供了标准的方法。

  应用框架的概念也很简单。它并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。

  应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。

什么要用框架?

  因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

  框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

  软件为什么要分层? 为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦:)。

框架和设计模式

  框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

  框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

为什么要进行框架开发?

  框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是框架,一个大的应用系统往往可能由多层互相协作的框架组成。

  由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。

  框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设计者就能重用构架的设计。

  框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。

主要特点

  领域内的软件结构一致性好;建立更加开放的系统;

  重用代码大大增加,软件生产效率和质量也得到了提高;

  软件设计人员要专注于对领域的了解,使需求分析更充分;

  存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;

  允许采用快速原型技术;

  有利于在一个项目内多人协同工作;

  大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。

与框架相关的概念

  1. 白盒与黑盒框架

  框架可分为白盒(White-Box)与黑盒(Black-Box)两种框架。

  基于继承的框架被称为白盒框架。所谓白盒即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的成员方法来开发系统。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重用的灵活性和完全性。但解决这种局限性的方法可以是只继承抽象父类,因为抽象类基本上不提供具体的实现。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。

  基于对象构件组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获得系统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继承更为灵活,它能动态地改变,继承只是一个静态编译时的概念。

  在理想情况下,任何所需的功能都可通过组装已有的构件得到,事实上可获得的构件远远不能满足需求,有时通过继承获得新的构件比利用已有构件组装新构件更容易,因此白盒和黑盒将同时应用于系统的开发中。不过白盒框架趋向于向黑盒框架发展,黑盒框架也是系统开发希望达到的理想目标。

  2. 热点、食谱以及好莱坞原则

  成功的框架开发需要确定领域专用的热点 (Hotspot)。应用开发者在框架的基础上进行开发,只须扩展框架的某些部分,热点就是在应用领域的一种扩展槽,开发者根据自己的需要填充这些扩展槽。热点使框架具有灵活性,如在具体的实现中,扩展槽可以被看成是一些抽象类,开发者通过重写抽象方法获得具体实现。

  食谱(Cookbook)就是描述如何使用框架方法的文档。在食谱中包含了许多烹饪方法,这些烹饪方法相当于一些具体的操作步骤,描述了为解决某一专门问题如何使用框架的详细方法。框架的内部设计和实现细节通常不出现在食谱中。

  框架的一个重要特征就是用户定义的方法经常被框架自身调用,而不是从用户的应用代码中调用。这种机制常称为好莱坞原则(HollywoodPrinciple)或别调用我们,我们会调用您

常见的JAVA框架

  WAF:全称:WEB APPLICATIONFRAMEWORK主要应用方面:EJB层,(WEB层也有,但是比较弱)。主要应用技术:EJB等出处:java.sun.com/blueprints/code/index.html">http://java.sun.com/blueprints/code/index.html简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在bea\weblogic700\samples\server\src\petstore。这是学习了解J2EE的首选框架。免费。

  Struts:主要应用方面:WEB层。主要应用技术:JSP,TagLib,JavaBean,XML等出处:http://jakarta.apache.org/struts/index.html简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。免费。

  简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF:JSP(TagLib)——>ActionForm——>Action——> Event——>EJBAction——>EJB ——>DAO——>DatabaseJSP(TagLib) (forward) <——Action <——EventResponse<——

  Turbine:主要应用方面:WEB层。主要应用技术:servlet等出处:http://jakarta .apache.org/turbine/index.html简述:这是APACHE的开源项目。基于SERVLET。据说速度比较快,基于service(pluggableimplementation可插拔的执行组件)的方式提供各种服务。免费。

  COCOON:主要应用方面:WEB层。主要应用技术:XML,XSP,servlet等出处:http://cocoon.apache.org/2.0/简述:这是APACHE的一个开源项目。基于XML,基于XSP(通俗地说,XSP是在XML静态文档中加入Java程序段后形成的动态XML文档。)。特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。免费。

  ECHO:主要应用方面:WEB层。主要应用技术:servlet等出处:http://www.nextap p.com/products/echo/简述:nextapp公司的一个开源项目。基于SERVLET。页面可以做的很漂亮,结合echopoint,可以作出很多图形效果(里面用了jfreechart包)。使用SWING的思想来作网页,把HTML当作JAVA的类来做。但是大量使用Session,页面分帧(Frame)很多,系统资源消耗很大。免费。

  JATO:全称:SUN ONE ApplicationFramework主要应用方面:WEB层。主要应用技术:JSP,TagLib,JavaBean等出处:http://www.sun.com/简述:这是SUN推出的一个商业性框架,一看名字就知道是结合SUNONE的平台推出的。我下载了JATO2.0看了一下,感觉有些简单,使用了JSP+TagLib+JavaBean。如他的DOC所说JATO是适合用在小的WEB应用里。免费。

  TCF:全称:Thin-Client Framework主要应用方面:JAVA GUI。主要应用技术:JAVAapplication等出处:http://www.alphaworks.ibm.com/tech/tcf简述:这是IBM出的一个框架。基于MVC模式,基于JAVAApplication。推荐一篇介绍文章:java/j-tcf1/index.shtml">http://www-900.ibm.com/developerWorks/cn/java/j-tcf1/index.shtml收费:每个企业对象license:2000美元。

网页设计中的框架

  框架是网页中经常使用的页面设计方式,框架的作用就是把网页在一个浏览器窗口下分割成几个不同的区域,实现在一个浏览器窗口中显示多个HTML页面。使用框架可以非常方便的完成导航工作,让网站的结构更加清晰,而且各个框架之间决不存在干扰问题。利用框架最大的特点就是使网站的风格一致。通常把一个网站中页面相同的部分单独制作成一个页面,作为框架结构的一个子框架的内容给整个网站公用。 

  一个框架结构有两部分网页文件构成: 

  框架Frame:框架是浏览器窗口中的一个区域,它可以显示与浏览器窗口的其余部分中所显示内容无关的网页文件。

  框架集Frameset:框架集也是一个网页文件,它将一个窗口通过行和列的方式分割成多个框架,框架的多少根据具体有多少网页来决定,每个框架中要显示的就是不同的网页文件。

个人工具
名字空间

变换
查看
操作
导航
工具箱