排序的方法靈活指定
例:按重量,高度,順序,倒敘等
開閉原則:
對修改關閉(盡量不去修改原來的**),
對擴充套件開發
排序(sorter)
傳遞陣列
傳遞比較器(comparator)
自定義比較器
public
inte***ce
comparator
比較器的自定義實現
public
class
catcomparator
implements
comparator
else
if(o1.
getfish()
> o2.
getfish()
)return0;
}}
修改sorter
public
class
sorter
swap
(arr, i, minpos);}
}void
swap
(t arr,
int i,
int j)
}
呼叫
public
static
void
main
(string[
] args)
; sorter sorter =
newsorter()
; sorter.
sort
(arr,
newcatcomparator()
);system.out.
println
(arrays.
tostring
(arr));
}
2 策略模式
ifndef strategy h define strategy h include using namespace std 策略模式 不同種族加成不同的技能 class 種族 virtual void skilladd 0 不同的天賦加成不同的屬性 class 天賦 virtual void p...
設計模式 策略模式 2
設計模式,先說設計模式吧,對於設計模式而言,這裡邊把事物具體抽象出來,就剩下什麼了?就剩下 如何用乙個良好的結構儲存資料?然後如何用乙個擴充套件性強,可維護性高的操作,來實現這些資料的操作與控制 好了,感言說完了,接下來就是,聊一聊設計模式中的 策略模式!對於策略模式而言,有乙個比較好的例子,那就是...
2 設計模式 策略模式
定義 它定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會直接影響到用演算法的客戶。模式分析 策略模式是一種定義一系列演算法的模式,完成的工作相同,只是由於實現不同,所以以相同的方式呼叫,減少了各種演算法類與使用演算法類之間的耦合。策略模式可以封裝任何型別的規則,實踐...