新年第一篇博客_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 新年第一篇博客

新年第一篇博客

 2012/1/5 14:00:04  kyfxbl  http://kyfxbl.iteye.com  我要评论(0)
  • 摘要:1、最近把设计模式又复习了一下,感觉主要就是2点,1是封装变化点,2是让客户端尽量对内部组件无知封装变化点带来的好处是,在将来程序结构发生变化的时候,由于变化点已经被封装了,对程序其他地方的改动就会比较小。让客户端无知的好处是,既然客户端对组件内部的实现是无知的,那么只要保持与客户端交互的那个接口的稳定,组件内部无论怎么变化,都不会影响到客户端了设计模式虽然很多,但是其实都是为了这2个目的来封装代码。更本质来说,都是面向对象思想的体现。另一方面,设计模式也是对语言本身的一种补充
  • 标签:博客
1、最近把设计模式复习了一下,感觉主要就是2点,1是封装变化点,2是让客户端尽量对内部组件无知

封装变化点带来的好处是,在将来程序结构发生变化的时候,由于变化点已经被封装了,对程序其他地方的改动就会比较小。

让客户端无知的好处是,既然客户端对组件内部的实现是无知的,那么只要保持与客户端交互的那个接口的稳定,组件内部无论怎么变化,都不会影响到客户端了

设计模式虽然很多,但是其实都是为了这2个目的来封装代码。更本质来说,都是面向对象思想的体现。

另一方面,设计模式也是对语言本身的一种补充。JAVA里会有这些设计模式,实际上从侧面来看,也是JAVA语言本身不足的一种体现

2、谈一谈组件的概念

我感觉所谓的组件,像系统一样,是一个很灵活的概念,范围可大可小。对于一个很大规模的系统来说,其中的一个子系统,就可以算是一个组件。在子系统内部,一个模块也可以算是一个组件。模块内部,一组类的集合也可以算是一个组件。

比如说,有ModuleA、ModuleB、ModuleC这3个类,可以认为这3个类统称为一个组件。如果客户端需要用到这个组件,就需要依赖上述的3个类。这样也可以说,客户端对组件内部的实现依赖,如果组件发生变化,比如ModuleC类没有了,那就影响到客户端的代码

所以,如果使用Facade设计模式,增加一个Facade类,那么Facade类就和上述原有的3个类一起,作为一个组件。但是现在客户端,就只需要和Facade类打交道了,如果以后ModuleC类没有了,客户端完全不知道,当然也就不会影响到客户端的代码。在这种情况下,就认为客户端对组件内部的实现是不清楚的

客户端,与组件是相对的概念,也就是使用组件的代码。一段代码,如果对外提供了服务,就可以认为是组件。同时它自身也调用了别的服务,那么从这个角度看,这段代码就是客户端

3、查询本机哪些端口已经被占用的命令

netstat -aon|findstr "8080"
tasklist|findstr "pid"

4、接口的概念

“接口”是面向对象编程里经常听到的一个词,尤其是在JAVA里。我认为,接口的同义词很多,包括契约、约定、协议、规格、规范、标准,某种程度上都是差不多的意思

比如说,饮水机的机器,和上面的桶装水,中间那层就是接口。如果接口不匹配,那水就无法装到机器上

又比如说,两个子系统,通过数据库中的某张表的某个字段进行集成(系统A往这张表里写入,系统B轮循这张表,当某个字段为某个特定值时,触发系统B进行某个操作),这个时候,这张表可以称为数据库接口

再比如说,InterfaceA声明了一个方法handle(),那么其上层组件就调用该接口,而不关心这个接口是怎么实现的,然后某个实现类ImplA,就实现这个接口,不关心会被什么人来调用,这就实现了上层组件和实现类的解耦,只要接口保持稳定,那么无论实现发生什么变化,都不会影响到上层组件

再举一个例子,比如租客和房东,通过中介进行联系。租客不在乎房东是男是女,他只需要把自己的租房需求和价格范围告诉中介就可以,房东也是一样,不用在意租客是什么人。在这个过程中,中介就是起到接口的作用。只要中介不玩消失(接口保持稳定),那么租客就直接找中介,房东也是直接找中介,使得租客和房东解耦

5、前段时间一直在研究JSON,突然回头发现java中定义数组的语法很奇怪

数组在JSON中是JsonArray的类型,定义的语法应该是[1,2,3,4,5]
可是在JAVA中却是,int[] array = {1,2,3,4,5},这个{},在JSON中是用来定义JsonObject的
发表评论
用户名: 匿名