Java策略模式(Strategy)1 策略模式(Strategy)1 场景问题1.1 报价管理 向客户报价,对于销售部门的人来讲,这是一个非常重大、非常复杂的问题,对不同的客户要报不同的价格,比如:对普通客户或者是新客户报的是全价对老客户报的价格,根据客户年限,给予一定的折扣对大客户报的价格,根据大客户的累计消费金额,给予一定的折扣还要考虑客户购买的数量和金额,比如:虽然是新用户,但是
Java 工厂方法模式5 3.3 平行的类层次结构(1)什么是平行的类层次结构呢? 简单点说,假如有两个类层次结构,其中一个类层次中的每个类在另一个类层次中都有一个对应的类的结构,就被称为平行的类层次结构。 举个例子来说,硬盘对象有很多种,如分成台式机硬盘和笔记本硬盘,在台式机硬盘的具体实现上面,又有希捷、西数等不同品牌的实现,同样在笔记本硬盘上,也有希捷、日立、IBM等不同品
Java 工厂方法模式4 3.2 工厂方法模式与IoC/DIIoC——Inversion of Control 控制反转DI——Dependency Injection 依赖注入1:如何理解IoC/DI 要想理解上面两个概念,就必须搞清楚如下的问题:参与者都有谁?依赖:谁依赖于谁?为什么需要依赖?注入:谁注入于谁?到底注入什么?控制反转:谁控制谁?控制什么?为何叫反转(
Java 工厂方法模式3 3 模式讲解3.1 认识工厂方法模式(1)模式的功能 工厂方法的主要功能是让父类在不知道具体实现的情况下,完成自身的功能调用,而具体的实现延迟到子类来实现。 这样在设计的时候,不用去考虑具体的实现,需要某个对象,把它通过工厂方法返回就好了,在使用这些对象实现功能的时候还是通过接口来操作,这非常类似于IoC/DI的思想,这个在后面给大家稍详细点
Java 工厂方法模式2 2 解决方案2.1 工厂方法模式来解决 用来解决上述问题的一个合理的解决方案就是工厂方法模式。那么什么是工厂方法模式呢?(1)工厂方法模式定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到其子类。 (2)应用工厂方法模式来解决的思路 仔细分析上面的问
java工厂方法模式1 工厂方法模式(Factory Method)1 场景问题1.1 导出数据的应用框架 考虑这样一个实际应用:实现一个导出数据的应用框架,来让客户选择数据的导出方式,并真正执行数据导出。 在一些实际的企业应用中,一个公司的系统往往分散在很多个不同的地方运行,比如各个分公司或者是门市点,公司没有建立全公司专网的实力,但是又不愿意让业务数据实时的
Hive安装配置详解 第一部分:软件准备与环境规划Hadoop环境介绍•Hadoop安装路径•/home/test/Desktop/hadoop-1.0.0/•Hadoop 元数据存放目录•/home/test/data/core/namenode•Hadoop 数据存放路径•/home/test/data/core/datanodeHive环
hive随谈 Hive 的官方文档中对查询语言有了很详细的描述,请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual ,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项。Create TableCREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name d
Struts2和MVC 前面讲到Struts2是一种基于MVC的Web应用框架,下面就来看看Struts2和MVC的关系。当然,由于我们还没有深入学习Struts2的各部分功能,这里只是先给大家讲一下Struts2是如何跟MVC对应的,其中一些名词所代表的具体功能,比如前端控制器(FilterDispatcher)、动作(Action)、结果(Result)等,在以后都会有专门的章节去讲解,现在不必在意他们的细节
Struts2 基础 1.2 Struts2 基础1.2.1 Struts1时代随着时间的推移,Servlet+JSP+JavaBean模型暴露出了它的缺点:流程凌乱:Servlet在完成对用户请求的处理后,下一个页面是谁?如何跳转过去?这些都是在Servlet里面直接写代码来完成的。导致Servlet既要处理请求,还要负责页面的流程,使得Servlet功能不够单一,更要命的是很难整体把
Struts2概述 之 MVC模式 1.1 MVC模式1.1.1 MVC模式简介MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率。 在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封
HelloWorld 之 概述 2.1.1 功能概述通过上一章的讲述,明白了Struts2是什么,有什么以及能干什么,接下来就该来讨论怎么做的问题了,也就是讨论如何使用Struts2来开发基于MVC的web应用。按照惯例,学习一个新的东西,都是从HelloWorld起步的,这里也不例外,本章就一起来看一个Struts2的HelloWorld实现。本章会从搭建Struts2的开发环境开始,用Struts2
struts2控制标签 8.3 控制标签控制标签关注程序的运行流程,比如用if/else来进行分支控制,用iterator来进行循环控制。接下来就来学习Struts2的控制标签。8.3.1 if、elseif与else标签1:if标签的功能: 类似于Java程序中的if,用来表达分支判断。 else标签的功能: 类似于Java程序中的else。
ui标签是什么 8.4 UI标签8.4.1概述UI标签是用来生成Web界面,或者为Web界面提供某些功能支持的标签,比如:表单标签就是把各种途径获取的需要展示的数据,通过动态生成HTML的形式展示到界面上。UI标签分成如下几种:Form Tags:表单标签,包含所有可以用在Form表单里面的标签Non-Form UI Tags:非表单标签,主要包含错误展示、组件等Ajax Tags:用来支持
struts2 中ognl的使用 7.2 OGNL7.2.1 OGNL概述OGNL是对象图导航语言Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。在前面
ActionContext和ServletActionContext的区别 7.4 ActionContext和ServletActionContext7.4.1 再探ActionContext前面已经了解到ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,我们也称之为广义值栈。 Struts2在每次执行Action之前都会创建新的ActionContext,在同一个线程里Acti
Ajax基础 14.1 Ajax基础14.1.1 Ajax概述Ajax(Asynchronous JavaScript And XML)技术,通常翻译成“异步JavaScript和xml”,它能让应用程序以异步的方式连接到服务器,等待服务器处理后获取返回值,从而实现无需刷新页面就可以与后台通讯的方式。 Ajax技术其实是一个非常老的技术,2000年左右就已经有了,只不过一直
JSON插件使用 14.4 使用JSON插件14.4.1 JSON基础JSON(JavaScript Object Natation),它是一种轻量级、基于文本、语言无关的数据交换格式,类似于XML,是一种结构化数据串行化的文本格式,常常用于服务器与JavaScript之间的数据交换上。 JSON是从ECMAScript语言标准衍生而来的,定义了一套简单的格式化规则,JSON可
spring与struts2整合 15.2.1概述以上面的示例来说明整合Spring和Struts2的基本方式:SampleAction与SampleService的生命周期和依赖关系都由Spring去管理。Struts2需要SampleAction实例的时候,不是自己新建实例,而是向Spring去请求获取一个实例,也就是SampleAction实例的生命周期也由Spring来管理接下来就来具体看看怎么整合
spring的自动装配 Spring支持自动装配的方式,也就是如果等待注入的对象所提供的属性,与Spring的配置中已经存在的Bean的定义之间有某种关联的话,就可以不用写元素来手工实现依赖注入的装配了,而是改由Spring来自动装配。Spring支持多种自动装配的策略:byName:根据对象的属性名称来自动装配。简单点说,就是在Spring的配置中,按照对象属性的名称作为Bean的name来寻找定义的B