`
Flyingh
  • 浏览: 18651 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
模板方法模式:在一个方法中定义一个算法的骨架,而将一些实现步骤延迟到子类中。 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 AbstractClass.java package com.flyingh.abs; public abstract class AbstractClass { public final void templateMethod() { step1(); step2(); step3(); step4(); hoop(); } private void step1() { ...
Facade Pattern:为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面 Tv.java   package com.flyingh.bean; public class Tv { public void turnOn() { System.out.println("turn on the TV!"); } public void chooseChannel() { System.out.println("choose the ...
Adapter Pattern:将一个类的接口,转换成客户所期望的另一个接口。 1). Target.java   package com.flyingh.target; public interface Target { void request(); }    Adaptee.java   package com.flyingh.adaptee; public class Adaptee { public void specificRequest() { // TODO Auto-generated method stub Syste ...
1).下面以Boss和Clerk为例: Clerk.java代码如下:   package com.flyingh.receiver; public class Clerk { public void action() { System.out.println("**************"); } }    Command.java代码如下:   package com.flyingh.icommand; public interface Command { void execute(); }    Concre ...
Simple Factory: 以Fruit为例,以下是实现代码: Fruit.java   package com.flyingh.iproduct; public interface Fruit { }    Apple.java   package com.flyingh.product; import com.flyingh.iproduct.Fruit; public class Apple implements Fruit { }    Orange.java   package com.flyingh.product; ...
装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的行为,以达到特定的目的 装饰者模式动态地将责任附加到对象上。 若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 1.下面是Food.java的代码:   package com.flyingh.abs; public abstract class Food { protected Food food; protected float price; { setPrice(); } public abstract void setPrice(); public flo ...
  观 察 者 模 式 定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 下面是House.java的代码:   package com.flyingh.observable; import java.util.Observable; public class House extends Observable { private float price; public House() { super(); } public House(float price) { super(); t ...
下面是Singleton模式的三种实现:饿汉式: package com.flyingh.test; public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { super(); // TODO Auto-generated constructor stub } public static Singleton getInstance() { return singleton; } } 懒 ...
有一个鸟类(Bird),它有一系列的方法,显示(display)方法,飞行(fly)方法,睡觉(sleep)方法,但是不同的鸟的外表(display方法实现)不一样,有的鸟不会飞,有的鸟站着睡…… 下面用策略模式实现 策略模式:定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 FlyBehavior接口代码如下: package com.flyingh.behavior; public interface FlyBehavior { void fly(); } SleepBehavior接口代码如下: package com.flyingh ...
    分解质因数:如90=2*3*3*5,代码如下: package com.flyingh.demo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Demo { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new Buffered ...
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.println(select(arr, 1, 8, 5)); } public static int select(int[] arr, int i, int j, int k) { if (k < 1 || k ...
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); // swapSort(arr); // insertSort(arr); // insertSort(arr,arr.length-1); // shellSort(arr ...
Global site tag (gtag.js) - Google Analytics