<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java學習

    java學習

     

    設計模式之策略模式

    使用策略模式自定義對象排序和比較屬性值排序的例子
    /**
     * 
     * 實體類的接口
     *
     */
    public interface DongWu {
    public int getAge();
    public void setAge(int age) ;
    public int getHigh();
    public void setHigh(int high) ;
    }
    /**
     * 
     * 排序接口
     *
     */
    public interface MyComparator  {
    int comparatorTo(Object object);
    }
    /**
     * 
     * 具體的排序接口,和具體的實體類對象無關
     *
     */
    public interface TypeComparator  {
    int comparatorTo(Object object1,Object object2);
    }
    /**
     * 
     * 按照年紀倒敘排序
     *
     */
    public class AgeDescTypeComparator implements TypeComparator {
    @Override
    public int comparatorTo(Object object1, Object object2) {
    DongWu c1 = (DongWu) object1;
    DongWu dw = (DongWu) object2;
    if (c1.getAge() > dw.getAge()) {
    return -1;
    } else if (c1.getAge() < dw.getAge()) {
    return 1;
    }
    return 0;
    }
    }
    /**
     * 
     * 按照年紀正敘排序
     *
     */
    public class AgeTypeComparator implements TypeComparator {
    @Override
    public int comparatorTo(Object object1, Object object2) {
    DongWu c1 = (DongWu) object1;
    DongWu dw = (DongWu) object2;
    if (c1.getAge() > dw.getAge()) {
    return 1;
    } else if (c1.getAge() < dw.getAge()) {
    return -1;
    }
    return 0;
    }
    }
    public class Cat implements MyComparator,DongWu{
    private int age;
    private int high;
    private TypeComparator typeComparator =new AgeDescTypeComparator();
    public Cat(){}
    public Cat(int age){
    this.age=age;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public int getHigh() {
    return high;
    }
    public void setHigh(int high) {
    this.high = high;
    }
    @Override
    public int comparatorTo(Object object) {
    DongWu cat = (DongWu) object;
    return typeComparator.comparatorTo(this, cat);
    }
    }
    public class Dog implements MyComparator,DongWu{
    private int age;
    private int high;
    private TypeComparator typeComparator =new AgeDescTypeComparator();
    public Dog(){}
    public Dog(int age){
    this.age=age;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public int getHigh() {
    return high;
    }
    public void setHigh(int high) {
    this.high = high;
    }
    @Override
    public int comparatorTo(Object object) {
    DongWu d = (DongWu) object;
    return typeComparator.comparatorTo(this, d);
    }
    }
    public class DataSorter {
    public static void sort(MyComparator[] arr){
    for (int i = arr.length; i >0 ; i--) {
    for(int j=0;j<i-1;j++){
    MyComparator m1=arr[j];
    MyComparator m2= arr[j+1];
    if(m1.comparatorTo(m2)==1){
    swap(arr,j,j+1);
    }
    }
    }
    }
    private static void swap(Object[] arr, int j, int i) {
    Object temp =arr[j];
    arr[j]=arr[j+1];
    arr[j+1]=temp;
    }
    }

    posted on 2017-09-13 11:06 楊軍威 閱讀(111) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 中文字幕成人免费高清在线 | **俄罗斯毛片免费| 国产亚洲视频在线播放| 男女交性无遮挡免费视频| 国产hs免费高清在线观看| 国产成人亚洲精品蜜芽影院| 好爽好紧好大的免费视频国产| 亚洲成a人无码亚洲成www牛牛| 午夜小视频免费观看| 亚洲爆乳无码专区www| 日韩在线天堂免费观看| 成a人片亚洲日本久久| 亚洲国产aⅴ综合网| 精品一区二区三区免费观看| 久久亚洲综合色一区二区三区| 免费精品99久久国产综合精品| 激情内射亚洲一区二区三区| 1000部啪啪毛片免费看| 亚洲综合在线一区二区三区| 国产网站免费观看| h视频在线免费观看| 亚洲AV乱码一区二区三区林ゆな| 69免费视频大片| 亚洲日韩精品无码专区| 亚洲av中文无码| 久久久久久国产精品免费免费男同 | 美女视频黄视大全视频免费的| 亚洲国产成人久久综合野外| 中文无码日韩欧免费视频| 亚洲一区二区三区首页| 性一交一乱一视频免费看| 一级毛片a免费播放王色电影 | 午夜影院免费观看| 亚洲色精品VR一区区三区| 亚洲成人国产精品| 98精品全国免费观看视频| 亚洲精品无码一区二区| 亚洲综合伊人久久综合| 67194熟妇在线永久免费观看| 国产区图片区小说区亚洲区| 久久久青草青青亚洲国产免观|