首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

学习DP-2.模版步骤模式

2012-12-27 
学习DP--2.模版方法模式模版方法模式这个模式不是在看书的时候学到的,而我自己最近在做一个小应用的时候,

学习DP--2.模版方法模式
模版方法模式
这个模式不是在看书的时候学到的,而我自己最近在做一个小应用的时候,重构完代码后总结的,翻开书一看,才知道,咦,这原来是模版方法模式。想想,《设计模式》这本书的作者们也是从大量的实践中总结出这些经验,如果我们一开始能够尝试的去使用这些经验,也许可以减少我们走的弯路。

记录一下我代码的重构过程和模版方法模式:

一开始的类有:


DataSource代表了界面上所需数据的来源,提供加载,操作,保存数据的方法。BaseDataSource作为基类,定义了一些抽象方法让子类实现。后来子类要完成一个判断,要是有网络连接就优先使用网络下载,如果没有网络连接再使用本地数据。于是在子类中出现这样的代码:


父类的代码如下:
public class Sort{      public final void sort(int[]array){       int length = array.length;       int lengthsub1 = length - 1;       for(int i = 0;i<lengthsub1;i++){          for(int j = i;j<length;j++){             if(compare(array[i],array[j])>0){                int temp = array[i];                array[i] = array[j];                array[j] = temp;             }          }       }   }      /**    * if a larger that b,return a positive number,if b larger than a       return negative number,if a equal to b,return 0.    */   protected abstract int compare(int a,int b);}//由小到大public void SortBySmall extends Sort{     @Override  protected int compare(int a,int b){     if(a > b)        return 1;     else        if(a < b)          return -1;        else          return 0;  }}//由大到小public void SortByLarge extends Sort{     @Override  protected int compare(int a,int b){     if(a > b)        return -1;     else        if(a < b)          return 1;        else          return 0;  }}


我是菜鸟,我犯错我开心,希望大家能不吝指教,谢谢啦!
                转载请注明来自:http://zhenzxie.iteye.com/blog

热点排行