自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

Refactoring Test

测试: import org.junit.Before; import org.junit.Test; public class CustomerTest { private Customer customer; @Before public void setUp() throws Exception { customer = new Customer("flyin...

2011-12-01 22:58:03 88

Interpreter

Interpreter Pattern:其意图是给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子. Expression.java   package com.flyingh.dp.interpreter; public abstract class Expression { public abstract int interpret(Con...

2011-11-24 21:19:59 92

Visitor

Visitor Pattern:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作(double dispatch)。 Acceptable.java   package com.flyingh.acceptable; import com.flyingh.visitable.Visitor; public interface ...

2011-11-24 17:37:57 97

Mediator

  Mediator Pattern: 用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator? 各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可...

2011-11-24 16:22:25 90

Prototype

Prototype Pattern:就是通过复制现在已经存在的对象来创建一个新的对象。当创建给定类的实例的过程很昂贵或很复杂时,就使用它。 Name.java package com.flyingh.dp.prototype; import java.io.Serializable; @SuppressWarnings("serial") public class Name...

2011-11-24 11:32:00 85

Memento

Memento Pattern:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 Memento.java   public class Memento { private String state; public Memento(String state) { super(); this.state...

2011-11-23 21:56:28 67

Flyweight

享元模式以共享的方式高效地支持大量的细粒度对象. 1).FlyweightDemo.java   package com.flyingh.demo; public class FlyweightDemo { public static void main(String[] args) { String str1 = "abc"; String str2 = "a" + ...

2011-11-23 18:38:25 66

Builder

Builder Pattern:可以将一个产品的内部表象与产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。 Mobile.java   package com.flyingh.product; import java.util.List; public class Mobile { private List<String> list; ...

2011-11-22 16:38:39 64

Bridge

桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦. Lock.java   package com.flyingh.ilock; public interface Lock { void lock(); void unlock(); }   L...

2011-11-22 15:05:34 69

Chain Of Responsibility

Chain Of Responsibility Pattern:很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使系统可以在不影响客户端的情况下动态的重新组织链和分配责任。 1). Handler.java   package com.flyinh.ihandle...

2011-11-21 23:05:20 55

Abstract Factory

下面以Mac和PC的CPU和RAM为例,代码如下: Cpu.java   package com.flyingh.icpu; public interface Cpu { String cpuInfo(); }    MacCpu.java   package com.flyingh.cpu; import com.flyingh.icpu.Cpu; pu...

2011-11-21 22:00:50 69

Proxy

Proxy Pattern:对其他对象提供一种代理以控制对这个对象的访问,它的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 1) Subject.java   package com.flyingh.isubject; public interface Subject ...

2011-11-18 18:47:44 88

State

State Pattern:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化 下面以Player的几种状态为例,代码如下: State.java   package com.flyingh.istate; public...

2011-11-18 15:57:55 112

Composite

Composite Pattern:意图是将对象组合成树形结构以表示部分-整体的层次结构,它使得用户对单个对象和组合对象的使用具有一致性。 下面以Iterator中的例子为例,不过,这里Department中除了含有Clerk外,也可以再含有子Department,它含有的子Department中也可以含有Clerk和Department,代码如下: DepartComponent.java ...

2011-11-17 17:09:17 376

Iterator

Iterator Pattern:其意图是提供一种方法顺序访问一个聚合对象中得各个元素,而又不需要暴露该对象的内部表示. 下面以Boss输出各个Department中的所有Clerk为例(各个部门对Clerk的内部表示不同,如有的用Array,有的用List,Map......): Clerk.java package com.flyingh.bean; import com.f...

2011-11-16 16:56:15 105

Template Method

模板方法模式:在一个方法中定义一个算法的骨架,而将一些实现步骤延迟到子类中。 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 AbstractClass.java package com.flyingh.abs; public abstract class AbstractClass { public final void templateMe...

2011-11-16 11:43:24 71

Facade

Facade Pattern:为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面 Tv.java   package com.flyingh.bean; public class Tv { public void turnOn() { System.out.println("turn...

2011-11-15 23:00:35 96

Adapter

Adapter Pattern:将一个类的接口,转换成客户所期望的另一个接口。 1). Target.java   package com.flyingh.target; public interface Target { void request(); }    Adaptee.java   package com.flyingh.adaptee; publ...

2011-11-15 21:43:44 61

Command

1).下面以Boss和Clerk为例: Clerk.java代码如下:   package com.flyingh.receiver; public class Clerk { public void action() { System.out.println("**************"); } }    Command.java代码如下:   pac...

2011-11-14 23:06:00 67

Factory Method

Simple Factory: 以Fruit为例,以下是实现代码: Fruit.java   package com.flyingh.iproduct; public interface Fruit { }    Apple.java   package com.flyingh.product; import com.flyingh.iproduct.Fruit...

2011-11-13 20:44:08 65

Decorator

装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的行为,以达到特定的目的 装饰者模式动态地将责任附加到对象上。 若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 1.下面是Food.java的代码:   package com.flyingh.abs; public abstract class Food { protected Food food; ...

2011-11-12 23:09:07 84

Observer

  观 察 者 模 式 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 下面是House.java的代码:   package com.flyingh.observable; import java.util.Observable; public class House extends Observable { priva...

2011-11-12 21:30:00 56

Singleton

下面是Singleton模式的三种实现:饿汉式: package com.flyingh.test; public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { super(); // TODO Auto-generated ...

2011-10-09 22:38:00 184

Strategy

[color=green]有一个鸟类(Bird),它有一系列的方法,显示(display)方法,飞行(fly)方法,睡觉(sleep)方法,但是不同的鸟的外表(display方法实现)不一样,有的鸟不会飞,有的鸟站着睡…… 下面用策略模式实现[/color] [color=darkred]策略模式:定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户[/co...

2011-10-09 21:52:30 59

分解质因数(如:90=2*3*3*5)

[color=green] 分解质因数:如90=2*3*3*5,代码如下:[/color] [code="java"]package com.flyingh.demo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public cla...

2011-10-07 17:02:48 159

原创 选出数组中从i到j的第k小的元素(不用对数组排序)

[code="java"]package com.flyingh.demo; import java.util.Random; public class Demo { public static void main(String[] args) { int[] arr = { 3, 6, 5, 8, 7, 2, 1, 9, 0, 4 }; System.out.prin...

2011-10-03 14:06:12 105

原创 sort(Java)

package com.flyingh.demo; public class Demo { public static void main(String[] args) { int[] arr = { 8, 1, 7, 2, 5, 9, 0, 3, 6, 4 }; print(arr); // bubbleSort(arr); // selectSort(arr)...

2011-10-01 14:42:30 86

空空如也

空空如也

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

TA关注的人

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