摘要: 找到一个大牛的博客,把IoC写的超级清楚。贴这里膜拜下。http://hanyanguo-126-com.iteye.com/blog/406277看过书之后,我对IoC的理解是:改变了之前Java创建实例的模式。之前创建和更改实例需要通过代码中进行修改。现在通过Spring的IoC机制,可以直接通过xml配置文件进行创建和修改。IoC,直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上 阅读全文
posted @ 2012-08-09 15:05 double_song 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 学校教育网支持ipv4/ipv6双栈式,因此可以把ipv6直接配置为本地连接中在命令行中输入:ipv6installnetshinterface ipv6add address "本地连接" fe80:a520:1314::1add dns "本地连接" 2001:251:e101:0::2ipv6测试:http://www.ipv6forum.com/test_ipv6.php中央1mms://tv6.ustc.edu.cn/tv3/中央2mms://tv.lzu.edu.cn/cctv2中央3mms://tv.lzu.edu.cn/cctv3中央5m 阅读全文
posted @ 2012-08-09 11:38 double_song 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 组合模式:利用组合模式可以将对象组合成树形结构来表现“整体/部分”层次结构。组合能让用户以一致的方式处理个别对象以及对象组合。比如图形界面,Frame或Panel是顶层组件包含其它组件(例如菜单、蚊子面板、滚动条、按钮)这样这个GUI包含了若干部分,当显示的时候认为是一个整体,告诉顶层组件显示,由顶层组件显示左右相关部分。这个包含其它组件的组件为组合对象,成没有包含其它组件的组件为叶节点。例如,餐厅有多种餐单(咖啡厅餐单、甜点餐单等等)餐单还有子餐单成树形结构。代码:MenuComponent 1 package com; 2 3 public abstract class MenuComp. 阅读全文
posted @ 2012-08-06 11:29 double_song 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式:在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中。使用模板方法可以让子类在不改变算法结构的情况下重新定义算法中的某些步骤。举个例子:在咖啡馆中提供咖啡和茶两种。咖啡冲泡法:把水煮沸->用沸水冲泡咖啡->把咖啡倒进杯子->加糖和牛奶茶的冲泡法:把水煮沸->用沸水浸泡茶叶->把茶倒进杯子->加柠檬从过程中可以看出来,无论是茶和咖啡都遵循着煮水->泡->倒进杯子->加调料这四个步骤,所以把整体抽象出来作为模板。具体茶和咖啡的不同可由子类具体实现。 1 package com.test; 2 3 public abstract 阅读全文
posted @ 2012-08-05 19:17 double_song 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 什么时候使用适配器模式?当需要使用一个现有的类而其接口并不符合需求的时候,使用适配器。例子:在之前的java中,collection类比如Vector、Stack、Hashtable均有一个element()方法返回一个Enumeration遍历里面的元素,后来推出了Iterator。现在要想让之前代码中的枚举器接口变为Iterator,就需要写一个适配器。通过适配器之后,现在使用的依旧是迭代器,但实际上是通过适配器调用的之前枚举类接口。代码: 1 package com.test; 2 3 import java.util.Enumeration; 4 import java.util.I. 阅读全文
posted @ 2012-08-04 21:06 double_song 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 什么时候使用命令模式?当需要将发出请求的对象和执行请求的对象解耦的时候,使用命令模式。命令模式:将请求封装成对象。Client创建一个ConcreteCommend,并设置接受者。Command为所有命令生命了一个接口,调用命令对象的execute()方法,可以让接收者进行相关动作。Invoker是命令最终的调用者。具体例子,现在设计一个遥控器,这个遥控器来控制房间内所有电器的开关。为这个遥控器编程。以电风扇为例,RemoteLoader创建很多命令对象,然后将他们加载到遥控起的插槽中。每个命令对象都封装了某个家电自动化的一项要求。RemoteControl管理一组命令对象,每个按钮按下的时候 阅读全文
posted @ 2012-08-03 13:32 double_song 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 单例模式:确保一个类只有一个实例,并提供全局访问点。注意,全局变量也可以提供全局访问,但不能保证只有一个实例。在Java中实现Singleton Pattern的几个要素:私有构造器、一个静态方法和一个静态变量 1 package com; 2 3 public class Singleton { 4 private volatile static Singleton uniqueInstance; 5 private Singleton(){}//私有的构造方法 6 7 //getInstance提供了全局访问点,在需要用到实例的时候调用 8 ... 阅读全文
posted @ 2012-08-02 18:12 double_song 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法放类把实例化推迟到子类抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。二者的区别:工厂方法是用继承,把对象的创建委托给子类,子类实现工厂方法来创建对象。抽象工厂使用对象组合,对象的创建被实现在工厂接口所暴露出来的方法中。例如肯德基的生产,在中国和美国根据不同的要求汉堡制作会有一些变化。应对这个需求,采用工厂方法模式:在采用工厂方法来设计的的肯德基中,在工厂KFC中并没有具体制作汉堡的过程,需要制作什么样的产品由继承的子类来实现。采用抽象工厂来实现:KFC实现为一个抽象工厂,这里提 阅读全文
posted @ 2012-08-02 17:23 double_song 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 再次强调设计的重要原则:对扩展开放,对修改关闭。在设计中要尽量避免对之前源代码的修改。 为适应扩展的特性,除了继承之外,还可以用装饰者模式:动态的将新的功能附加到对象上。换句话说,装饰者模式就是有一群装饰者类,这些类包裹起具体的组件。在java中,最典型的装饰者模式就是java I/OFileInputStream是被包装的组件,有最基本的读取字节的功能。BufferInputStream是一个具体的装饰者,它加入了两种新的行为:readLine()和缓冲输入;LineNumberInputstream也是一个具体的装饰者它在BufferInputStream之上又加入了计算行数的功能。... 阅读全文
posted @ 2012-07-30 11:35 double_song 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 观察者模式,就像订报纸杂志。出版社(主题Subject)有新的报纸出版就会通知读者(观察者 Observer),当读者不想看报纸的时候,取消订阅就不会再受到新送来的报纸。这就是一种典型的观察者模式。 观察者模式:在对象之间定义一对多的依赖,这样当一个对象改变状态,依赖它的对象都会受到通知并自动更新。 观察者类图: Subject是主题接口,对象使用这个接口注册为观察者也可以把自己从观察者中删除。ConcreteSubject是实现主题的接口,除了注册和撤销方法之外还有notifyOvservers(),用于在状态改变是更新当前所有的观察者。 Observer观察者接口,这个接口只有... 阅读全文
posted @ 2012-07-29 15:30 double_song 阅读(259) 评论(0) 推荐(0) 编辑