框架入门

1.XWokrer是一个框架编程系统

    XWorker是一个动态系统,在XWorker的发展历程中提到XWorker的初始目标是框架编程,实际上XWorker也可以看作是一个框架编程系统。

2.框架编程简介 

2.1 什么是框架编程

    从软件设计角度,框架是一个可复用的软件架构解决方案,规定了应用的体系结构,阐明软件体系结构中各层次间及其层次内部各组件间的关系,责任分配和控制流程,表现为一组接口,抽象类以及实例间协作的方法。

2.2 编程框架的好处

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

2.3 框架的构成

    编程中的框架有各种各样的,根据XWorker的特点我们主要讨论具有配置和引擎的框架类型。

2.3.1 配置

    一个成品的框架通常会提供给使用者编写的配置,比如Spring的Bean配置文件和Hibernate的映射文件等。

2.3.2 引擎

    框架还应该具有引擎,引擎是用来解释执行配置文件的。

2.3.3 配置和引擎的示例

    以Spring的Bean框架为例。

    配置:

<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns="http://www.springframework.org/schema/beans"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
    <!-- 定义第一个Bean实例:bean1 -->  
    <bean id="bean1" class="com.Bean1" />  
      
    <!-- 定义第二个Bean实例:bean2 -->  
    <bean id="bean2" class="com.Bean2" />  
      
</bean>  

   调用引擎的代码:

public class SpringTest {    
    public static void main(String[] args) {  
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");  
        System.out.println(ctx.getBean("bean1"));  
        System.out.println(ctx.getBean("bean2"));  
    }    
}  

3. XWorker编程框架

3.1 解决框架不统一的问题

    在Java编程中现在已经有很多框架可以使用了,比如Spring和Hibernate等,但是调用它们的方法是不统一的,尤其是当自己要编写多个框架时,框架的调用不统一会给自己造出麻烦。

    XWorker可以看作是统一各种框架的一种解决方案,它是通过配置和引擎的反转实现的。

3.2 框架引擎和配置的反转

    在使用传统的框架时通常是用引擎来读取配置,然后再执行各种功能,比如下面的这段代码:

public class SpringTest {    
    public static void main(String[] args) {  
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");  
        System.out.println(ctx.getBean("bean1"));  
        System.out.println(ctx.getBean("bean2"));  
    }    
} 

    而引擎和配置的反转则是要把配置放在首位,使用配置来调用引擎,从而把引擎隐藏。

public class SpringTest{
    public static void main(String[] args){
        //读取框架的配置
        Config config = EngineManager.loadConfig("Spring", "bean.xml");

       //通过配置获取Bean,在配置里调用引擎
        Object Bean1 = config.doAction("getBean");
    }
}

3.3 XWorker框架中的基本概念

    XWorker的框架编程就是把引擎和配置反转了,只是XWorker没有再采用配置和引擎的概念,而是使用了世界(World)和事物(Thing)两个概念。

3.3.1 事物(Thing)

    事物相当于框架编程中的配置,事物有doAction的方法,引擎在doAction方法中被调用。

3.3.1 世界(World)

    世界相当于引擎的管理器,它负责管理所有的事物。

Copyright ©  2007-2019 XWorker.org  版权所有  沪ICP备08000575号