国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

策略模式多種方式實現字符串比較

2019-11-06 07:24:37
字體:
來源:轉載
供稿:網友
**調用對象上的方法通常是執行該對象上的某項操作**.

如果一個對象的方法執行其他對象的操作,一個類僅僅導出這個方法(它的實例相當于一個指向該方法的指針),這樣的實例被稱為函數對象 例如: /** * 如果一個類的所有實例在功能上都是相互等價的,那么他應該被設計為一個singleton

public class StringLengthComparator { PRivate StringLengthComparator() { } public static final StringLengthComparator INSTANCE = new StringLengthComparator(); public int compare(String s1, String s2) { return s1.length() - s2.length(); }}

//策略接口

public interface Comparator<T> { public int compare(T s1,T s2);}

/** * 如果使用匿名雷勝明,將會在每次執行調用的時候創建一個新的實例.應該講函數對象儲存在一個私有的靜態域final里面并重用它 * @author JacXuan * */

public class Host {// //使用匿名內部類// Arrays.sort(StringArray,new Comparator<String>(){// public int compare(String s1,String s2){// return s1.length()-s2.length();// }// }) private static class StrlenCmp implements Comparator<String>,Serializable{ @Override public int compare(String s1, String s2) { return s1.length()-s2.length(); } } public static final Comparator<String> STRING_LENGTH_COMPARATOR = new StrlenCmp();}

總結:函數指針的只要用途就是實現策略模式. 在java中實現這種模式,首先要聲明一個接口來表示該策略,并且為每個具體策略聲明一個實現了該接口的類.當一個具體策略只被調用一次的時候,通常使用匿名類來聲明和實例化這個具體的實現類.當一個具體策略是設計用來重復使用的時候,它的類通常就要被實現為私有的靜態成員類,并通過公有的靜態final域被導出,其類型為該策略接口


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和林格尔县| 诸城市| 陵川县| 九江县| 大方县| 桑植县| 磐石市| 永城市| 长兴县| 同江市| 凭祥市| 芒康县| 甘孜县| 威信县| 万山特区| 略阳县| 海晏县| 鸡东县| 苗栗县| 武夷山市| 德州市| 翁牛特旗| 阳高县| 浑源县| 喀喇沁旗| 通海县| 兴海县| 岢岚县| 平山县| 鄂托克旗| 栾城县| 张掖市| 盐池县| 玛曲县| 巴林右旗| 雅江县| 雅江县| 蒲城县| 咸宁市| 正安县| 措勤县|