自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鼠标的咖啡屋

合作胜过竞争,分享创造价值

  • 博客(26)
  • 收藏
  • 关注

原创 接口隔离原则的小心得

 很多人都知道为了系统的可扩展性,需要加入中间层。而接口隔离原则就是中间层用“接口 ”使得外界与中间层内部的业务脱耦。所以进行通信的时候要有专门的通信类,否则的话,由外界直接操纵中间层内的特定类时,会因为各种原因而使得中间层代码侵入外界模块,从另一个角度讲,中间层的代码也被入侵了,失去了可扩展性。

2006-09-30 12:35:00 892

原创 关于业务抽象的有点开窍后的想法

不知道是不是以前的一些想法造成的惯性思维还是项目中实际情况引发的思考.(还可能是以前的惯性思维把项目做的垃圾了,所以才会出现这种实际情况.这是一笔烂帐,就不算了).总之发觉看似严丝合缝的流程中还是有很多可以拆解的地方,而且在一个流程中,很多地方都要用到的从逻辑或者说业务的角度来看都是一种功能的.....叫什么呢?模块,这些东西比如各种的生成引擎,其实可以抽成一个东西,只要他们有共同的行为.

2006-09-28 16:40:00 984 1

原创 编码中最郁闷的事

编码最郁闷的事情是--优化垃圾代码.比那更郁闷的是--那个垃圾代码是我写的

2006-09-27 10:29:00 925

原创 Set内判断是否包含与equals方法的重要性

Set中判断是否满足下面的条件才会将元素加入到Set中去o:(o==null ? e==null :o.equals(e))。 从上面可以看出Set每次添加的时候是判断调用的加入元素自己的equals方法,也就是说,重载equals是很重要的,不然的话一定会把相同的对象加进去,懒得话就拿String当数据模型填进去。(建议不要,这不是一个很好的面向对象方式)。从另一个角度讲,如果没什么必要

2006-09-26 22:16:00 1226

原创 策略模式与合成模式

看了看才知道,策略模式与合成模式居然是一直在用的东西.策略模式就是依赖倒转原则的一种方式,依赖接口编程,不依赖具体实现.可以做到具体实现(比如算法)与业务逻辑流程(又称责任)的分离(脱耦,就喜欢看到这种东西).其实是很常见的一种思路.合成模式就是C++里面的虚函数,而Java里面方法本来就是虚函数.根据里氏代换原则,父类可以传入的地方,子类可以代换.如果一个父类的方法被子类覆盖的话,在C+

2006-09-26 13:11:00 1028

原创 为什么要有工厂

工厂的使用可以隐藏对象实例化的细节. 降低耦合性,为未来在不改动现有代码的基础上进行优化提供可能.我们想象一下,如果所有的对象实例都是new出来的,当有一天我们要控制某个实例的数目时,我们需要从每一个类文件中去搜找这个类实例化的地方,改掉所有的new.所以如果没有必要的理由,不要将构造器暴露出来.一律采用工厂模式.常用的工厂模式有三种:"简单工厂模式","工厂方法模式","抽象工厂方法模式"

2006-09-25 16:35:00 991

原创 好书推荐

想知道什么是好书 吗?去看Jol大奖名单,ChinaPub里有合集:http://www.china-pub.com/computers/subject/huodong/alljolt/alljolt.htm防止页面有一天失效,我把名字列在这里: 《企业应用架构模式》 (曾获2003年生产效率奖和读者选择奖) 《企业应用架构模式(影印版)》 (曾获2003年生产效

2006-09-25 14:12:00 1199

原创 完美的方案

以前在培训的时候,有位老师跟我们说,与其把需求定的太大最后做不完,不如把它定的小一点最后完成它。结果等进了公司在程序开发中,发现我们更多时候并不是不想把它定小点,而是实际情况逼着我们必须把它做大,做完善。这个时候会感觉到处处掣肘,很是郁闷。经过一段时间的项目开发,总结一番之后,提出一个猜想,不知道是否可以算作经验。但是还是写下来防止忘记。在我们的开发初期,我们肯定要就我们的系统做一番设计,

2006-09-21 00:10:00 943 2

原创 推荐一个网站--牛博网

一个很牛的博客网。是很牛的前新东方教师老罗 (罗永浩,如果你没听过老罗语录的话,上网去搜)离开新东方后开的网站。很多牛人。http://www.bullog.cn/Portal.aspx

2006-09-19 16:27:00 2071

原创 Eclipse的灵异事件

今天测试俺的程序,好端端的模板就是不按规则生成静态页面,真是见鬼了。写了个main方法测试(之所以不用JUnit是因为这个东西也经常会搞些灵异现象出来)将具体代码赋值给一个String对象,然后处理,执行。爷就郁闷了,还是出错。逼我单步调试啊!说做就做,建立断点,打开Debug视图,开始单步调试。经过耐心的跟踪发现,居然生成正确的结果了!!!!!我可是一个字母也没碰,见鬼了。谁知道这是怎么回事

2006-09-19 15:50:00 951 2

原创 扩展与耦合的边界

这个题目有些大,其实还是小经验。最近发觉做项目的时候,经常会有因为理解不对或与前辈交流不够(他们忙自己的模块,很难交流够)按自己的想法做了到头来却发觉做出来得东西需要大改的尴尬事情发生。(好长的句子,呵呵)往大了去想,这应该就是需要扩展吧。很幸运的是,当时费劲做出来得标签类没有白费。因为当时做CMS时,我的思想是生成与设置的分离,各个标签的相对独立。同时引入队列。所以现在虽然变,但是改动不

2006-09-18 21:51:00 971 3

原创 关于for循环

for循环的一点小经验如果for循环里牵扯到遍历数组或者List那么建议采用下面的用法(当然用foreach更好,但是现在采用5.0进行开发的项目组很少)for(int i = 0; i //.....}如果for循环里牵扯到最后一次循环的特殊处理,那么建议采用下面的写法for(int i = 1; i //....if( i == xxxx){//...}}

2006-09-18 20:58:00 1001

原创 装饰模式与适配器模式的一句话区别

装饰模式是一个接口两个类,适配器模式是两个接口一个类 。

2006-09-18 13:26:00 1942

原创 看OO理论书籍的收获

最大的收获就是没有收获。《java与模式》 看了看,《UML和模式应用》看了看,《Effective Java》看了看。都没看完,第一本看的页数最多,大概有1/3,看懂的有没有1/3就不好说了,第二本看了1/4,很负责任的说,我没看懂,迭代这个思想跟我以前学的瀑布模型差的太远。虽然我很清楚瀑布模型是不好用的,甚至是错误的,但是我也找不出UP的可靠之处来,毕竟功力还不足,这个不着急。第三本看了1/2

2006-09-17 23:44:00 880

原创 if...else的用法分析

if(a){}else if(a){}是因为条件互有包含,为了层层过滤,并且每一层都有逻辑且逻辑不一样if(a1){}if(a2){}则不是为了过滤,是有N种情况,条件往往是各自独立,出现一种情况不可能包含其它的情况。if(a){}else{if(b1){..}if(b2){...}...}则是更复杂的条件包含,首先条件是互相包含的,经过过滤之后又有一些条件是相互独立的。当然还可能出现过滤之后还

2006-09-16 12:01:00 1689 5

原创 return之后finally块还会不会执行(try-catch块中finally的小例子)

 public class testFinally { public static void main(String[] args) {  System.out.println(test(1));  System.out.println(test2(1));  System.out.println(test3(new StringBuffer("0"))); }  public static

2006-09-15 17:08:00 2123 3

原创 判断的标准应该放在哪里?

如前面所说,通信的时候应该传一个对象进来。那么总会有根据对象的值不同调用不同的对象的情况。如何处理?一般我们调用的不同对象一定是具有相同功能的,也就是说一般是实现了相同接口的不同类。很好,接口有一个特性,可以写一些常量放在里面等待比较用。这样比起以前处处写字符串的方法,两边的字符串就不用出现在代码的各个地方,将来修改起来也会比较简单如果没有实现同一个接口呢?这个问题也很简单,如法炮制就完了

2006-09-15 12:07:00 846

原创 与对象通信的教训

系统开始的时候,一切都那么简单,于是采用了String进行传递重要的参数。很快,随着系统长大,慢慢的以前想不到的参数开始出现。于是开始组合字符串。不同的类按照自己的需要进行切割。慢慢的这个组合字符串的规则变得不可维护和扩展,这个时候开始后悔,为什么当时不把参数做成一个对象呢?所以得到一个教训,当类与外界进行通信的时候,参数尽量作成一个专用类,如果已经做了普通的方法可以在下一个版本中重载它,并渐

2006-09-15 11:44:00 887

原创 从写队列和池领悟到MVC

池或者队列这种东西一旦开始使用就会成瘾,什么都想做成池或者队列。实话说确实可以对模块的脱耦有很大的帮助队列或池这种东西一旦使用,就会发现大多一样,所以为每一个小模块匹配的一种池写一个类是完全没必要的。取而代之的应该是一个管理器。匹配不同的Key(键名)。由管理器控制每一个池的生命周期。Query,QueryManager,QueryUser三者可以各自演化。(当然,本能的应该把三者都做成接

2006-09-15 11:28:00 955

转载 JAVA程序员面试之《葵花宝典》等

JAVA程序员面试之《葵花宝典》http://blog.csdn.net/lip009/archive/2006/09/14/1222082.aspx  经典面试题目(1) http://www.blogjava.net/SkyWinder/archive/2006/09/15/69985.html

2006-09-14 22:43:00 3318 1

原创 从业菜鸟

从业快3个月了,这3个月可以说自尊心受到一定打击。虽然一直自以为自己的水平还算不错了,谁想到离现实还是有很大差距。总的来说,还是一只菜鸟。既然仍就是一盘菜,但环顾了一下四周,自己觉得还是比较出色的菜鸟。索性评价一下菜鸟好了。对于进入公司的菜鸟,我分析了一下,大约分为下面几种1.对j2se的基本类库有横向的了解,掌握不少普通的用法。对整个类库有点系统的了解。了解点Struts,Spring,Hibe

2006-09-13 23:17:00 1568 13

原创 java中文件操作的小例子

//创建根文件夹abc  File abc = new File("/abc/");  if(!abc.isDirectory()){   abc.mkdirs();  }  //创建子文件夹sub  File sub = new File("/abc/sub/");  if(!sub.isDirectory())  {   sub.mkdirs();  }  //在子文件夹sub下创建一个文件 

2006-09-11 11:49:00 1094

原创 专诸的职业生涯

中国有个非常有名的刺客: 专诸。专诸只是一位刺客既不是纵横沙场的将领也不是运筹帷幄的统帅,气吞天下的君主更与它无缘。在能人辈出的中国,它的身影可以说小的不值一提。可是,没有他就没有吴王阖闾,可能一代猛将伍子胥和一代兵圣孙武也就无法出现在历史上那么显眼的位置上。先不说这位刺客对历史影响的重要性,单纯看看他的职业规划。当时行刺活动总策划伍子胥偶然的在集市上看到专诸。他为保护老母应击市侩的身手让他眼

2006-09-08 20:27:00 1059

原创 需求分析无处不在

客户说得是A,我们理解的是B,做出来得是C,其实要得是D这种搞笑的场景日复一日的在it界发生着,已经变成了理所应当的事情了。 最近发现,这个场景其实不仅仅在客户和软件公司之间发生我是一个普通的程序员,上面的意思传达给项目组长,组长传达给我,我又理解成另外一个样子,做出来得又是另外一个样子。做为一个程序员看待需求不能仅仅觉得这是公司的事情。当逻辑复杂到一定程度的时候,任何事情都会

2006-09-07 14:26:00 968

原创 原始模型(Prototype)模式学习笔记

原始模型模式其实就是“克隆”,当我们的系统需要对模型对象(MVC中的M)复制一份的时候非常有用。采取这种模式就免去了我们必须知道一些细节才能实例化。 原始模型模式分为两种两种表现形式:第一种是简单形式,第二种是登记形式,区别无非在于后者有一个管理器。管理器的好处是可以防止重复复制,减少资源浪费。 说到“克隆”就不能不说浅复制和深复制

2006-09-03 10:09:00 2169

原创 谦卑,是一种让我们快乐涵养

矜持和高傲不会让我变得开心,无聊的自尊只会被一次次的摧毁 ,胡乱定下的原则其实不是男人的表现,强大和优秀是一种客观存在,高傲、矜持、自负是一些糟烂的性格,过分的执着于失败是弱者的表现,唯有谦卑,是一种让我们快乐涵养,面对任何人,都有比我强的地方,没有任何理由去摆高姿态,放下无谓的执扭,正视前方的困难,承认犯过的错误,笑看过往的云烟,心底无私天地宽,壁立千仞无

2006-09-02 17:21:00 892

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除