`
文章列表
Part I 什么是状态模式 状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类 -- 《Head First – Designer Pattern》译本   Part II 状态模式与策略模式的关系  策略模式强调的是对算法的抽象与封装,而状态模式则侧重于当对象内部状态改变时所引起的对象行为的改变! 虽然两种模式的形式和使用上相类似,但是他们所处理的问题是不一样的。   Part III 解决吃饭-工作问题 首先让我们模拟一个场景: 1. 有一个Person的对象; 2. 这个人有两个行为:吃饭 -- 工作; 3. 这个人有三种不同的状态:吃饱 -- 正常 -- 饥饿; ...
Part I 我并不是在卖弄自己的英语有多少的了不起,只不过对Annotation这一次的解释真的很懊恼,“注解”和“注释”这两个对Annotation的翻译我听着不爽,所以全文都用Annotation来表示。 Part II 相信Java的开发人员对Annotation这个名词 ...
面向切面编程(AOP)实现了从另一个层面解决了面向对象所不能解决的对象间耦合度问题。今天闲来无聊做了个模拟AOP的小例子,有不完善的地方请指出。 首先我们定义一个接口和实现类 package com.gzmu.dynamic.proxy.service;import java.io.Serializable;import com.gzmu.dynamic.proxy.po.User;public interface UserService {void saveUser(User user);void updateUser(User user);void deleteUser(User user ...
Part I 没啥好说的,直接开始Part II吧。   Part II 谈到了对象的克隆,就不得不说为什么要对对象进行克隆。Java中所有的对象都是保存在堆中,而堆是供全局共享的。也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象的内部数据通过get/set方法曝露出来)。有的时候,我们编写的代码想让调用者只获得该对象的一个拷贝(也就是一个内容完全相同的对象,但是在内存中存在两个这样的对象),有什么办法可以做到呢?当然是克隆咯。   Part III 首先,我们是程序员,当然是用我们程序员的语言来交流。 import ja ...
面向切面编程(AOP)实现了从另一个层面解决了面向对象所不能解决的对象间耦合度问题。今天闲来无聊做了个模拟AOP的小例子,有不完善的地方请指出。 首先我们定义一个接口和实现类 package com.gzmu.dynamic.proxy.service;import java.io.Serializable;import com.gzmu.dynamic.proxy.po.User;public interface UserService {void saveUser(User user);void updateUser(User user);void deleteUser(User user ...
Part I JDK1.2后,Java提供了对观察者模式的支持接口和实现类。 其中接口 java.util.Observer 用来指定观察者,观察者必须实现 void update(Observable o, Object arg) 方法。 而 java.util.Observable 用来指定观察物(被观察者、可被观察的),并且提供了一系列的方法。读者可以很轻易的使用这个接口和实现类来实现观察者模式。   Part II java.util.Observer 只有一个简单的方法 void update(Observable o, Object arg) 其中,参数 Observable o 用 ...
Part I 新安装了 JDK 6 的程序员们也许会发现,除了传统的 bin、jre 等目录,JDK 6 新增了一个名为 javadb 的目录。这便是 Java 6 的新成员:Java DB。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby。- 摘自百度百科。 一开始学习Java的时候,依稀还记得安装JDK的时候有个JavaDB。当初我这个连Java基本语法都不懂的人当然没去理会。慢慢的,在学习的过程中,我接触到了几款数据库管理系统(Oracle、DB2、SqlServer、MySql、Access等等)。但是,我们在开 ...
Part II 关于对象的缓存问题,今天老师提出了一个方案,先把今天展示的方案的代码贴出来: 1: import java.util.HashMap; 2: import java.util.Map;
Part V Comparable与Comparator的作用很类似,那到底应该有哪个呢? 这个问题留给读者去思考,在这里我没有这个资格做出评论,只是我在很多的讨论中都了解到用Comparator接口的人比较多。 最后是东方标准杨帆老师使用Comparator的一点心得,谢谢杨老师的教导:    1: import java.util.Comparator;
Part IV 说到现在,读者应该对Comparable接口有了大概的了解,但是为什么又要有一个Comparator接口呢?难道Java的开发者都吃饱撑着没事做吗? 再谈Comparator接口之前,大家应该先了解一个叫“策略模式”的东东。一下是百度百科对策略模式的描写: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchan ...
Part III 接下来让我们看看Comparable和Comparator的强大功力:    1: public class Person implements Comparable<Person> {    2: 
Part I Comparable与Comparator接口不仅在串法上相似,而且他们的作用都十分的相似,他们可以让对象实现可排序。 首先让我们看看官方文档(JDK6.0 API)中对他们的描述: public interface Comparable<T> This interface imposes a total ordering on the objects of each class that implements it. This ordering is referred to as the class's natural ordering, and the class' ...
今天尝试了一下使用Annotation整合Spring2.5和Hibernate3.3,在使用HibernateDaoSupport的时候才想起Annotation必须是加在源码上,但是setSessionFactory被标记为final,那继承HibernateDaoSupport后就不能重写setSessionFactory方法来实现使用Annotation的注入。代码段如下: 1: /**
Global site tag (gtag.js) - Google Analytics