- 浏览: 1436962 次
- 性别:
- 来自: 广州
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
文章列表
访问者模式(Visitor Pattern)
- 博客分类:
- 设计模式
一、概念
在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升。
结合反射机制,可以使得访问者模式适用范围更广。
二、类图
一、本图片生成器具有以下功能特性:
1、可以设置图片的宽度、高度、外框颜色、背景色;
2、可以设置图片字体的大小、名称、颜色;
3、可以设置输出图片的格式,如JPEG、GIF等;
4、可以将图片存储到一个文件或者存储到一个输出流;
5、可以为图片增加若干条干扰线(在生成随机码图片时可用此特性);
6、打印在图片上的文字支持自动换行;
7、可以将文字旋转指定弧度数;
二、下面列出相关的源代码
1、抽象类AbstractImageCreator的源代码
/**
* 模板方法模式应用 ...
策略模式的本质:少用继承,多用组合。
策略模式属于对象的行为模式。处理多于一个算法的时候,把算法和使用算法的客户端分开(把行为和环境分开),从而方便的选择其中一个算法。
针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
- 2009-03-18 15:21
- 浏览 1454
- 评论(0)
Spring AOP的应用:在处理业务短信之前,可以执行前置方法,在处理业务短信之后,可以执行后置方法。
策略模式的应用:不同的业务对应不同的短信格式,业务短信可以随时新增、删除,扩展性高。
模板方法模式的应用:业务短信的校验和最后处理定义成抽象方法,而且,要先通过校验后才能作最后的处理。
访问者模式的应用:每种校验规则都是对所属的短信处理器进行校验。
相关的源代码、类图、配置信息如下:
一、类图
二、类源代码
1、抽象类AbstractNoteProcessor源代码
public abstract class Ab ...
SqlServer触发器的应用
- 博客分类:
- 数据库
更新事务类似于在删除之后执行插入;首先旧行被复制到 deleted 表中,然后新行被复制到触发器表和 inserted 表中。
1.插入操作(Insert)
Inserted表有数据,Deleted表无数据
2.删除操作(Delete)
Inserted表无数据,Deleted表有数据
3.更新操作(Update)
Inserted表有数据(新数据),Deleted表有数据(旧数据)
一、insert触发器
create trigger tr_COMMISSIONINFO_INSERT on COMMISSION_INFO ...
JDK1.2以后提供了动态代理的支持,程序员通过实现java.lang.reflect.InvocationHandler接口提供一个执行处理器,然后通过java.lang.reflect.Proxy得到一个代理对象,通过这个代理对象来执行商业方法,在商业方法被调用的同时,执行处理器会被自动调用。
Java动态代理只能对实现了接口的类生成代理,不能针对类。其实现主要是通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约 ...
一、MINA框架简介
Apache MINA(Multipurpose Infrastructure for Network Applications) 是用于开发高性能和高可用性的网络应用程序的基础框架,它对Java中的socket和NIO进行了有效和清晰的封装,方便开发人员开发TCP/UDP程序,从而抛开在使用原始的socket时需要考虑的各种繁杂而又烦人问题(线程、性能、会话等),把更多精力专著在应用中的业务逻辑的开发上。
二、MINA框架的常用类:
IoAccepter 相当于服务器端 IoConnector 相当于客户端 I ...
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<property name="jdbcUrl" value="jdbc ...
- 2009-02-06 11:51
- 浏览 4984
- 评论(0)
public class FtpUtil {
private FTPClient ftpClient;
private String hostname;
private int port;
private String username;
private String password;
private String remoteDir;
public FtpUtil(String hostname, int port, String username, String password, String remoteDir){
this.hostname = hostnam ...
- 2008-12-18 19:31
- 浏览 3278
- 评论(1)
1、在one-to-many关系中,将many一方设为主控方(inverse=false),由many方维护关联关系,有助于性能的改善。
<set name="simSaleses" inverse="false" cascade="save-update"> <key> <column name="FID_" /> </key> <one-to-ma ...
- 2008-12-16 15:25
- 浏览 1260
- 评论(0)
JbpmConfiguration config = JbpmConfiguration.getInstance(); JbpmContext context = config.createJbpmContext(); //删除所有流程定义版本 GraphSession session = context.getGraphSession(); List defList = session.findAllProcessDefinitionVersions("LEAVE"); if(defList != null && defList.size( ...
一、包规范
1、report包
CREATE OR REPLACE package report as
type cursorType is ref cursor;
type CommInfo is record(
id_ varchar2(60),
name_ varchar2(200),
comm_category_name_ varchar2(60),
city_company_name_ varchar2(200),
district_name_ varchar2(100),
county_company_name_ varchar2(200), ...
- 2008-11-19 16:37
- 浏览 5119
- 评论(0)
1、拦截器相关基础类
Interceptor接口
--> AbstractInterceptor抽象类
--> MethodFilterInterceptor抽象类(支持方法过滤)
2、配置拦截器
<interceptor name="拦截器名" class="拦截器实现类">
3、使用拦截器
<interceptors>
<interceptor name="mySi ...
query:使用hsql语句,可以设置参数是常用的一种方式 criteria:尽量避免了写hql语句,看起来更面向对象了。 find:这种方式已经被新的hibernate丢弃 get和load方式是根据id取得一个记录 下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来。 1,从返回结果上对比: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2,从检索执行机制上对比: get方法和find方法都是直接从数据库中检索 而load方法的执行则比较复杂 1,首先查找sess ...
- 2008-10-28 09:56
- 浏览 1429
- 评论(0)
四、下拉框数据获取方法的源代码
public String findOptions() throws Exception{
String entityName = getRequest().getParameter("_ENTITY");
String keyField = getRequest().getParameter("_KEY");
String descField = getRequest().getParameter("_DESC");
String orderBy = getRequest().getParame ...