re: 关于Javascript闭包学习 刘甘泉 2007-10-18 19:30   
			閉包?我的理解就是返回函數的函數。
				
		 
	
		
			
			@li
说的好,如何说服客户是一个问题,最好的方法就是从成本入手
				
		 
	
		
			re: 软件开发的理念与实际开发 刘甘泉 2007-09-24 23:27   
			自己先学习理论啊,然后再结合他们的设计,如果到你能够发现他们设计的各种不足的时候,就是时候跳槽了
				
		 
	
		
			re: 应用maven的感想 刘甘泉 2007-09-24 23:24   
			如果有好的资料也去学习了
				
		 
	
		
	
		
			re: 软件开发#前途 刘甘泉 2007-09-16 19:35   
			不晓得你到底想法是啥子,难道你真的想有车有房?现在搞软件的又不是白领了,还是好生找个好点子,自己发家才对
				
		 
	
		
			re: 依赖注入和单元测试 刘甘泉 2007-09-14 21:33   
			草儿。。好女性化的名字
				
		 
	
		
			re: 改进“千里冰封”的截屏程序 刘甘泉 2007-09-14 09:44   
			呵呵,偶对图像处理不熟,搞web方向的
				
		 
	
		
			
			moo?没用过,其他两个还是喜欢jquery,其实dojo也可以,不过慢了
就oo来说的话,我晓得的框架里面dojo是做的最好的。
要实用性来说的话,prototype只是简单的一个功能集合而已,
而jquery就好多了,他有自己的一个element元素对象,而不是用的DOM的元素对象,扩展也多,页面做出来很好看。好像还有EXT框架,不过没咋个用过
				
		 
	
		
			
			netbeans用过一会,感觉不好用,可能idea用习惯了
				
		 
	
		
			re: 读书计划 (暨开博宣言) 刘甘泉 2007-09-14 09:36   
			第一本可以,第二本没看头,head first 适合初学,ajax 就一本ajax in actions还可以,css还没具体学过
				
		 
	
		
	
		
			re: 利用POI操作EXCEL文档(1) 刘甘泉 2007-09-12 19:38   
			poi的大容量读 力不从心啊
				
		 
	
		
			
			Unsupported major.minor version 50.0
写的这么清楚的~~~。
我遇到的最无语的问题就是只抛出了这个异常javax.servlet.ServletException,其他啥子都没提示了
				
		 
	
		
			re: instanceof和回调概念 刘甘泉 2007-09-12 19:35   
			两个东西感觉没关系啊。。
				
		 
	
		
			re: 今天OO考试的一个题 刘甘泉 2007-07-16 10:41   
			把你的代码修改了一下,把操作分离出来。
Exp.java
1
 /** *//**
/** *//**
2 * User: liugq
 * User: liugq
3 * Date: 2007-7-16
 * Date: 2007-7-16
4 * Time: 10:15:12
 * Time: 10:15:12
5 */
 */
6
 public interface Exp
public interface Exp  {
{
7 float getRes();
    float getRes();
8 }
}
9
 
 
ExpAbstract.java
 1
 /** *//**
/** *//**
 2 * User: liugq
 * User: liugq
 3 * Date: 2007-7-16
 * Date: 2007-7-16
 4 * Time: 10:29:26
 * Time: 10:29:26
 5 */
 */
 6
 public interface ExpAbstract extends Exp
public interface ExpAbstract extends Exp  {
{
 7 public  Operation getOp();
    public  Operation getOp();
 8
 9 public  void setOp(Operation op);
    public  void setOp(Operation op);
10
11 public  Exp getA();
    public  Exp getA();
12
13 public  void setA(Exp a);
    public  void setA(Exp a);
14
15 public  Exp getB();
    public  Exp getB();
16
17 public  void setB(Exp b);
    public  void setB(Exp b);
18 }
}
19
 
 
IntNumber.java
 1
 /** *//**
/** *//**
 2 * User: liugq
 * User: liugq
 3 * Date: 2007-7-16
 * Date: 2007-7-16
 4 * Time: 10:18:22
 * Time: 10:18:22
 5 */
 */
 6
 public class IntNumber implements Exp
public class IntNumber implements Exp  {
{
 7 private int number;
    private int number;
 8
 9
 public IntNumber(int number)
    public IntNumber(int number)  {
{
10 this.number = number;
        this.number = number;
11 }
    }
12
13
 public int getNumber()
    public int getNumber()  {
{
14 return number;
        return number;
15 }
    }
16
17
 public void setNumber(int number)
    public void setNumber(int number)  {
{
18 this.number = number;
        this.number = number;
19 }
    }
20
21
 public float getRes()
    public float getRes()  {
{
22 return number;
        return number;
23 }
    }
24 }
}
25
 
 
MultiplyOp.java
 1
 /** *//**
/** *//**
 2 * User: liugq
 * User: liugq
 3 * Date: 2007-7-16
 * Date: 2007-7-16
 4 * Time: 10:20:46
 * Time: 10:20:46
 5 */
 */
 6
 public class MultiplyOp implements Operation
public class MultiplyOp implements Operation  {
{
 7 private static Operation instance = new MultiplyOp();
    private static Operation instance = new MultiplyOp();
 8
 9
 public static Operation newInstance()
    public static Operation newInstance()  {
{
10 return instance;
        return instance;
11 }
    }
12
13
 public float execute(Exp a, Exp b)
    public float execute(Exp a, Exp b)  {
{
14 return a.getRes() * b.getRes();
        return a.getRes() * b.getRes();
15 }
    }
16 }
}
17
 
 
Operation.java
 
1
 /** *//**
/** *//**
2 * User: liugq
 * User: liugq
3 * Date: 2007-7-16
 * Date: 2007-7-16
4 * Time: 10:16:33
 * Time: 10:16:33
5 */
 */
6
 public interface Operation
public interface Operation  {
{
7 float execute(Exp a,Exp b);
    float execute(Exp a,Exp b);
8 }
}
9
 
 
PlusOp.java
 1
 /** *//**
/** *//**
 2 * User: liugq
 * User: liugq
 3 * Date: 2007-7-16
 * Date: 2007-7-16
 4 * Time: 10:19:37
 * Time: 10:19:37
 5 */
 */
 6
 public class PlusOp implements Operation
public class PlusOp implements Operation  {
{
 7 private static Operation instance = new PlusOp();
    private static Operation instance = new PlusOp();
 8
 9
 public static Operation newInstance()
    public static Operation newInstance()  {
{
10 return instance;
        return instance;
11 }
    }
12
13
 public float execute(Exp a, Exp b)
    public float execute(Exp a, Exp b)  {
{
14 return a.getRes() + b.getRes();
        return a.getRes() + b.getRes();
15 }
    }
16 }
}
17
 
 
OpFactory.java
 1
 /** *//**
/** *//**
 2 * User: liugq
 * User: liugq
 3 * Date: 2007-7-16
 * Date: 2007-7-16
 4 * Time: 10:22:18
 * Time: 10:22:18
 5 */
 */
 6
 public class OpFactory
public class OpFactory  {
{
 7
 public static Operation getPlus()
    public static Operation getPlus()  {
{
 8 return PlusOp.newInstance();
        return PlusOp.newInstance();
 9 }
    }
10
11
 public static Operation getMultiply()
    public static Operation getMultiply()  {
{
12 return MultiplyOp.newInstance();
        return MultiplyOp.newInstance();
13 }
    }
14 }
}
15
 
 
Two_e_Exp.java
 1
 /** *//**
/** *//**
 2 * User: liugq
 * User: liugq
 3 * Date: 2007-7-16
 * Date: 2007-7-16
 4 * Time: 10:15:41
 * Time: 10:15:41
 5 */
 */
 6
 public class Two_e_Exp implements ExpAbstract
public class Two_e_Exp implements ExpAbstract  {
{
 7 private Exp A;
    private Exp A;
 8 private Exp B;
    private Exp B;
 9 private Operation op;
    private Operation op;
10
11
 public Two_e_Exp(Exp a, Exp b, Operation op)
    public Two_e_Exp(Exp a, Exp b, Operation op)  {
{
12 A = a;
        A = a;
13 B = b;
        B = b;
14 this.op = op;
        this.op = op;
15 }
    }
16
17
 public Operation getOp()
    public Operation getOp()  {
{
18 return op;
        return op;
19 }
    }
20
21
 public void setOp(Operation op)
    public void setOp(Operation op)  {
{
22 this.op = op;
        this.op = op;
23 }
    }
24
25
 public Exp getA()
    public Exp getA()  {
{
26 return A;
        return A;
27 }
    }
28
29
 public void setA(Exp a)
    public void setA(Exp a)  {
{
30 A = a;
        A = a;
31 }
    }
32
33
 public Exp getB()
    public Exp getB()  {
{
34 return B;
        return B;
35 }
    }
36
37
 public void setB(Exp b)
    public void setB(Exp b)  {
{
38 B = b;
        B = b;
39 }
    }
40
41
 public float getRes()
    public float getRes()  {
{
42 return op.execute(A, B);
        return op.execute(A, B);
43 }
    }
44 }
}
45
 
 
test.java
 1
 /** *//**
/** *//**
 2 * User: liugq
 * User: liugq
 3 * Date: 2007-7-16
 * Date: 2007-7-16
 4 * Time: 10:27:02
 * Time: 10:27:02
 5 */
 */
 6
 public class test
public class test  {
{
 7
 public static void main(String[] args)
    public static void main(String[] args)  {
{
 8 ExpAbstract e1 = new Two_e_Exp(new IntNumber(1), new IntNumber(2),
        ExpAbstract e1 = new Two_e_Exp(new IntNumber(1), new IntNumber(2),
 9 OpFactory.getPlus());
                OpFactory.getPlus());
10 ExpAbstract e2 = new Two_e_Exp(new IntNumber(3), new IntNumber(4),
        ExpAbstract e2 = new Two_e_Exp(new IntNumber(3), new IntNumber(4),
11 OpFactory.getMultiply());
                OpFactory.getMultiply());
12 ExpAbstract e = new Two_e_Exp(e1, e2, OpFactory.getPlus());
        ExpAbstract e = new Two_e_Exp(e1, e2, OpFactory.getPlus());
13 System.out.println(e.getRes());
        System.out.println(e.getRes());
14 }
    }
15 }
}
16
 
 
有点乱
 
	
		
			re: 今天OO考试的一个题 刘甘泉 2007-07-15 12:29   
			就模式来说,用bridge好的多,题目主要包括两种抽象,数字实体和操作实体,然后进行组合
				
		 
	
		
			re: Spring的依赖关系(JAR) 刘甘泉 2007-06-19 22:19   
			介绍的不错,可以看看
				
		 
	
		
			re: 亲密接触设计模式(序) 刘甘泉 2007-06-05 19:22   
			真正的设计模式的应用就是不是模式
				
		 
	
		
			
			又是设计模式,其实也就那么一回事,知道大概的模式的概念就好
在编程的时候不要刻意的去迎合模式,要去迎合抽象就可以了
				
		 
	
		
			re: Ajax之异步的优势 刘甘泉 2007-06-02 21:45   
			n年前的技术了,现在才火起来,不知道还会炒出什么旧东西来
				
		 
	
		
			re: JAVASCRIPT 数据格式化 刘甘泉 2007-06-02 21:33   
			用正则,多简单的~~
				
		 
	
		
			
			呵呵,排版还不错
不过struts这些东西,用到的时候再学也不迟,好生把面向对象部分的ooad,还有领域模型学好才是正道
				
		 
	
		
			re: 在我们身边发生的静悄悄战争 - 转 刘甘泉 2007-05-31 09:13   
			现在管那么多老毛了,反正是大家都晓得的事情,把自己的技术学好,能够出国就出国,然后在us买房,房子也是私有的,比在中国好n倍
				
		 
	
		
			re: 大学(一) 刘甘泉 2007-05-29 00:11   
			只有长期的学习,才能赚钱
				
		 
	
		
			
			vc6+tomato比eclipse集成cdt好用多了
				
		 
	
		
			re: JDK 自带实用工具集 刘甘泉 2007-05-24 16:31   
			不错,不过rmi的也用过,rmiregistry,好像这个吧 
				
		 
	
		
			re: Java编程原则 刘甘泉 2007-05-17 21:20   
			srp,ocp,lsp,isp,dip都是ood的原则
				
		 
	
		
			re: 【破门点滴】敏捷究竟需要什么? 刘甘泉 2007-05-17 21:19   
			测试优先真的很重要,现在的公司为了节约成本,很多都没有做单元测试,以至于在后面的维护时候是非常困难
				
		 
	
		
	
		
			re: 国内IT始终不如 刘甘泉 2007-05-16 09:07   
			国家都没规范,公司如何规范
				
		 
	
		
			
			@Alex
证明你的分层思想还不到位~~,dao只是对于数据库的操作,并不涉及业务流程,而一个业务流程可能经过了n个dao的操作,如果注入到action中的话,那维护起来不是很麻烦,而且事务管理的好处也不在了~~~
				
		 
	
		
			re: Java运算符 刘甘泉 2007-05-14 19:32   
			逻辑运算符替换if else还是很常用的
				
		 
	
		
			
			@久城
这个其实就是值与引用的问题,在浅拷贝的时候都是只进行引用的拷贝,基本类型就是直接拷贝,所以在修改的时候,基本类型的修改是没有问题的,而其他的对象的修改的时候就会修改到堆中的数据,即引用指向的数据。
对象里面除基本类型都是存储的引用,即c++的指针指向地址
				
		 
	
		
			
			进行clone时候要考虑object的调用修改问题,如果不对object进行修改的话,浅clone是很好的,如果要修改的话会引起问题
具体好像TIJ(thinking in java)有讲,effective java也有讲
				
		 
	
		
			re: 单词缩写应该使用怎样的命名规范? 刘甘泉 2007-05-14 11:43   
			我的命名习惯
var Ajax=new Object();
function Ajax(obj){this.obj=obj}
//当声明为一个object或者一个'类'时,用头字母大写,如果有名词,名词全部大写 
其他的都是头字母小写,insertHTML 这样
				
		 
	
		
			
			不错 ,嵌套事务,PROPAGATION_NESTED,transactiondefinition就可以了
				
		 
	
		
			
			有啊,在spring里配置上b注入a即可,不过可能失去spring的事务性控制。
另,感觉你的设计可能有问题,所以才会有serviceA掉用serviceB的问题。
相关的业务都是放到一个service里面的,如serviceA.executeA()里面调用了daoA.insert和daoB.update 而serviceB.executeB()调用了daoB.update,看起来可以换成是serviceA调用了serviceB,其实不对的,一个事务应该保持事务的一致性,即一个事务只应该做一个事务的事。
而你的那种配置方法是在serviceA中调用serviceB,serviceB本身就是由spring 控制的事务,当你在serviceA中调用过serviceB.后,spring会自动提交serviceB的事务,并不是在serviceA完成的时候提交。
如有不对请指教
				
		 
	
		
			re: spring 事务的 自动装配 刘甘泉 2007-05-13 23:25   
			@lexus
这个~~,用不到吧
				
		 
	
		
			re: spring 事务的 自动装配 刘甘泉 2007-05-13 23:24   
			@Alex
一个service是将所有的业务对象的操作都放在一起,我的想法是将每个业务对象的职责分开,好像基本上都是分开的,如petshop,springside,appfuse等
				
		 
	
		
			re: 谈谈方法中的返回值类型和参数类型 刘甘泉 2007-05-13 20:37   
			这的参数和返回值应该是封装了map的对象吧
				
		 
	
		
	
		
			re: 设计模式之Observer 刘甘泉 2007-04-16 20:03   
			@shgavin
其实更像古时候的烽火台,在每个台放上哨兵,如果有事情发生,就通知
				
		 
	
		
			re: 设计模式之Observer 刘甘泉 2007-04-16 20:00   
			@zht
swing就是用的observer
				
		 
	
		
			re: Java 是值传递还是引用传递? 刘甘泉 2007-04-16 19:59   
			老问题了,T.I.J里面也有详细的解释
				
		 
	
		
			re: 一种向数据库中写入数据的新方法 刘甘泉 2007-04-15 17:33   
			这种方法我也用过,项目里面有需要做的
感觉用preparedstatement要好