- 浏览: 35228 次
- 性别:
- 来自: 合肥
博客专栏
-
我和Java数据库操作的那...
浏览量:9485
最新评论
-
ivanlw:
楼主用的这个snapito好神奇啊……是直接把图片链接设置成他 ...
ibookmark.me上线了! -
succinite:
使用TortoiseGit, 出现以下错误。fatal: ht ...
一个简单的JAVA后台程序框架 -
mazhiyuan:
引用很显然,之前所说的梦想,并非是真正心中所想,而只不过想“找 ...
也谈梦想 -
cevin15:
说到我心里去了。现在处于离职状态。也是对前途一片迷茫~
也谈梦想 -
lwjlaser:
lettoo 写道lwjlaser 写道这篇博客第一个示例代码 ...
我和JAVA数据库操作的那些事儿(3)
文章列表
观察者模式(有时又被称为发布/订阅模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。
图1:观察者模式
代码实现:
1. Observer接口
public interface Observer {
void watch(String message);
}
2. Subject接口
package cn.lettoo.observe;
public interface Subject ...
代理模式是常用的Java 设计模式,它的特征是代理类与委托类有同样的接口,如图1所示。代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
图1:Proxy模式
按照代理类的创建时期,代理类可分为两种。
静态代理类:由程序员创建或由特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
动态代理类:在程序运行时,运用反射机制动态创建而成。
...
今天在看apache chainsaw这个项目的源代码时,无意中发现了一个非常简单的Job Scheduler的实现,源代码可以看这里:http://svn.apache.org/repos/asf/logging/chainsaw/trunk/src/main/java/org/apache/log4j/scheduler/
,其中一个是Scheduler,另一个是Job接口。
Scheduler介绍道:
/**
* A simple but still useful implementation of a Scheduler (in memory o ...
好久没有写java代码了,最近工作项目上需要做一个java后台的程序,此后台程序提供start(), stop()和status()接口,分别用于启动、关闭和得到状态信息。
参照以前的项目代码,做这种后台的程序可以采用RMI,即在某端口上启动server,通过RMI使用客户端(当然,这种服务端和客户端实际上在同一台机器上)来调用服务端的方法。
老早以前看过spring对RMI的支持大大简化了工作,那么就用这个吧。
Spring RMI支持大致方法如下:
1. 先创建一个Server接口
package cn.lettoo.rmi.server;
publi ...
记得不久以前有道面试题,要求下面的数据结构
里面每一项都是一个id和一个name,并且,要求能够通过name来返回id。
我当时是用一个树结构来实现的,代码如下:
package cn.lettoo;
import java.util.ArrayList;
import java.util.List;
public class TreeNode {
//父节点
private TreeNode parent = null;
private int id;
private Stri ...
本项目已经通过git进行版本管理,checkout:http://github.com/lettoo/orion
项目要实现一个java后台程序,提供start(),stop()和status()的方法。
主要的原理是:有一个Server类运行在localhost:xxxx上,当成一个RMI service,这个Server类里有一个Service List,通过Spring注入的方式,向其中注入Service,当然,也可以通过编程方式动态往里面加Service,因为项目比较简单,直接通过Spring配置已经满足要求。RMI 客户端通过调用Server.start ...
在读Ruby on Rails Tutorial: Learn Rails by example
过程中,发现有很多不错的观点,记录并翻译一下,英文不好,请见谅。
测试驱动开发:红、绿、重构
TDD: Red, Green, Refactor
在测试驱动开发过程中,我们首先写一个不能通过的 ...
笔者近期参与一个分析log的项目。主要流程是:读取Log文件,对每一行Text解析成对应的Object,解析器会将多个Object存放到一个List中并发送到ActiveMQ的Queue中,即Queue中的一个Message即应一个Objects List。然后数据处理thread会consume存放在Queue中的Message,并将处理的结果保存到db。
采用JMS来实现读取Log和分析Log之间的异步运行,使用ActiveMQ的可持久化的Queue,当Message被放进Queue中并持久化后,就会更新Log的读取进度,这样即使程序break down,也不会导致数 ...