笔记1

 

1. 重构:在不改变代码外在行为的前提下,对代码作出修改,以改进程序的内部结构。

1)对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

2)使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

3)通俗的说法:重构是一种高效且受控的代码整理技术。

 

2. Enumeration接口 :Enumeration来遍历Vector集合
废弃的接口:Enumeration 
Enumeration接口是JDK1.0时推出的,是最好的迭代输出接口,最早使用Vector(现在推荐使用ArrayList)时就是使用Enumeration接口进行输出。虽然Enumeration是一个旧的类,但是在JDK1.5之后为Enumeration类进行了扩充,增加了泛型的操作应用。

 

Enumeration接口常用的方法有hasMoreElements()(判断是否有下一个值)和 nextElement()(取出当前元素),这些方法的功能跟Iterator类似,只是Iterator中存在删除数据的方法,而此接口不存在删除操作。

为什么还要继续使用Enumeration接口
Enumeration和Iterator接口功能相似,而且Iterator的功能还比Enumeration多,那么为什么还要使用Enumeration?这是因为java的发展经历了很长时间,一些比较古老的系统或者类库中的方法还在使用Enumeration接口,因此为了兼容,还是需要使用Enumeration。

 

List接口的常用子类
List接口常用的子类有ArrayList和Vector,两者有许多相似的地方,下面给出这两者之间的比较

 

3. Move Method(142)
    Replacce Temp with Query(120)  除去参数 
    Extract Method(110) 抽取方法
    ...
4. State模式:状态模式  
重构方法上有这么一条Replace Type Code with State/Strategy 这么一种手段。那么究竟是选择State模式还是Stratey模式呢?分析我们的问题主要是解决状态变化多端,而State就是(变化多端),Stratey(明修栈道、暗渡乘沧)。
定义: 根据对象的状态不同,将具有不同的行为。

使用时机:当一个对象的行为取决于他的状态,并且它必须在运行时刻根据状态改变他的行为,或者一个操作中还有庞大的多分支的条件语句,并且这些分支依赖于该对象的状态时,就需要适应状态模式。

 
 
 
 
 

你可能感兴趣的:(重构)