简单的实现了一下控制反转,将各个visitor访问代码分不到不同的visitor类中
visitor-->node
private static Map<Class<?>, AbstractNodeVisitor<IPigBuilder>> visitMap;
static {
visitMap = new ConcurrentHashMap<Class<?>,AbstractNodeVisitor<IPigBuilder>>();
visitMap.put(FilterNode.class, new FilterNodeVisitor());
visitMap.put(GroupNode.class, new GroupNodeVisitor());
visitMap.put(JoinNode.class, new JoinNodeVisitor());
visitMap.put(StoreNode.class,new StoreNodeVisitor());
visitMap.put(LoadNode.class, new LoadNodeVisitor());
visitMap.put(DBStoreNode.class, new DBStoreNodeVisitor());
visitMap.put(DBLoadNode.class, new DBLoadNodeVisitor());
visitMap.put(OrderByCnd.class, new OrderByNodeVisitor());
}
@Override
public IPigBuilder visit(AbstractNode node) throws NodeErrorException {
if (!visitMap.containsKey(node.getClass())) {
return null;
}
AbstractNodeVisitor<IPigBuilder> visitor = visitMap.get(node.getClass());
return visitor.visit(node);
}
分享到:
相关推荐
在这个“自己实现ioc实例demo”中,我们将探讨如何通过XPath解析XML文件来实现这一功能。 首先,让我们了解什么是依赖注入。在传统的编程中,一个类通常会自行创建它需要的对象,这导致了类与对象的紧密耦合。而在...
**Spring-IOC实例详解** Spring框架是Java开发中不可或缺的一部分,尤其在企业级应用中,其Inversion of Control(IoC)容器是其核心特性之一。IoC,也被称为依赖注入(Dependency Injection,DI),是一种设计模式...
本实例主要关注Struts与Spring的集成,特别是Spring的Inversion of Control (IoC)容器在其中的作用。 Struts是一个MVC(Model-View-Controller)框架,它主要用于处理用户请求,控制应用程序流程,并提供视图模板来...
总的来说,Spring 3.1的IoC实例展示了如何通过控制反转和依赖注入来简化Java应用的开发和维护。通过XML、注解和Java配置等方式,我们可以灵活地管理对象生命周期,降低组件间的耦合,从而提高软件的可测试性和可扩展...
`Spring 的DI和IoC实例详解.txt`可能是博客文章的文本版本,详细解释了Spring的DI和IoC如何在实际应用中工作。 总结来说,Spring的DI和IoC是其核心特性,它们提供了一种优雅的方式来管理对象的依赖关系,增强了代码...
标题中的“EF4+MVC6+AutofacIOC实例”代表了一个集成开发项目,它结合了Entity Framework 4(数据库访问技术),ASP.NET MVC 6(Web应用程序框架)和Autofac(依赖注入容器)。这是一个针对初学者的示例框架,旨在...
浅谈Spring IOC实例化Bean的三个方法 Spring IOC(Inversion of Control,控制反转)是Spring Framework中的一种核心机制,用于管理Bean的生命周期。实例化Bean是IOC的核心步骤之一,本文将详细讲解Spring IOC实例...
现在,我们来看如何运行这个简单的Spring IOC实例。首先,你需要创建一个Spring配置文件(如`springioc01.xml`),然后编写你的业务类和它们的依赖。接着,你需要一个启动程序来加载配置并初始化容器: ```java ...
Spring中的IoC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理权交给框架处理,使得应用程序的组件之间解耦。在本例中,我们将通过一个简单的例子来理解如何在Spring中使用IoC。 首先,...
开发者只需要定义对象的配置,如类的bean定义,然后由容器负责实例化、装配和管理这些对象。这降低了组件之间的耦合度,因为对象的依赖关系不再硬编码在代码中,而是通过配置文件或注解来声明。 Spring的bean定义...
IoC(Inversion of Control,控制反转)是一种设计模式,主要应用于软件开发中,尤其是在使用面向对象编程语言如C#时。控制反转的核心思想是将对象的创建和管理权交给一个外部容器,而不是由对象自身负责。这样可以...
创建Maven项目和Spring IOC实例过程解析 一、Maven项目创建过程 Maven是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,主要用于管理和构建Java项目。创建Maven项目需要使用IDEA开发工具,并...
在案例中,可能会有一个名为`beans.xml`的配置文件,其中定义了bean的实例化、属性配置以及它们之间的依赖关系。 2. **Bean的声明**:在`beans.xml`中,每个bean都通过`<bean>`标签进行声明,包括bean的ID、class...
3. `TestIoC.java`:这是一个关于IoC容器的测试类,它可能使用Spring的ApplicationContext接口来加载bean.xml配置,然后通过容器获取并测试bean实例。 4. `ServiceBean.java`:这可能是一个通用的服务bean,用于...
这个压缩包"Android 设计模式 示例集合 以及IOC注解事例 Demo"显然包含了多种设计模式的实践示例和IOC(Inversion of Control)注解的应用。下面将详细探讨这些关键知识点。 1. **设计模式**: - **单例模式**:...
**Spring IOC 容器应用实例** Spring 框架的核心组件之一是 Inversion of Control (IoC) 容器,也常被称为依赖注入(Dependency Injection)容器。IoC 是一种设计模式,它将对象的创建和管理从应用程序的业务逻辑中...
在这个名为“ioc_example.rar”的压缩包中,我们可以期待找到一个手写的IOC实例,这将帮助我们深入理解IOC的工作原理和实现方式。通常,IOC的实现方式有两种:依赖注入(Dependency Injection,DI)和服务定位器...
标题 "Spring+Hibernate+Jpa+Struts2整合实例" 描述的是一个综合性的Web开发教程,它将四个关键的Java技术框架集成在一起,用于构建高效的企业级应用程序。这个实例涵盖了Spring作为整体应用的管理框架,Hibernate...
在Unity中,Ioc容器是关键组件,负责管理和实例化对象,同时也处理对象之间的依赖关系。让我们深入探讨Unity Ioc Container的核心概念、工作原理以及如何在实际项目中应用。 ### 1. 依赖注入(Dependency Injection...