當用2個對象作爲參數編寫函數時,比如比較函數或向量sum,什麼設計模式更好?什麼設計模式更好?
1)將函數寫入對象類中,只取得第二個對象。
2)用一個靜態函數寫一個外部類,它將得到兩個對象。
爲什麼和什麼時候?
當用2個對象作爲參數編寫函數時,比如比較函數或向量sum,什麼設計模式更好?什麼設計模式更好?
1)將函數寫入對象類中,只取得第二個對象。
2)用一個靜態函數寫一個外部類,它將得到兩個對象。
爲什麼和什麼時候?
在Java中,你有Comparable.compareTo(o1)
是代表一個對象的執行,並採取第二個對象作爲參數:
apple.compareTo(orange);
還有Comparator.compare(o1,o2)
抽象:
comparator.compare(apple, orange);
無已被棄用並沒有一個被認爲是更好的。他們在不同的場景中都使用:
Fruit
類你甚至可以將它們結合起來:只要默認順序適合你,你就默認訂購(編碼在Fruit
之內)。如果有一天您需要不同的訂單,請選擇特定的比較器。
我相信這可以擴展到其他類似的情況和語言。
恕我直言,來自.NET的背景:如果任何對象可能爲空,請使用靜態方法。
如果第一個(左對象)必須爲非null,並且您希望使繼承類可以提供它們自己的等式方法實現,請使用實例方法。
用什麼語言? – Dervall
@德沃爾我不認爲這很重要。任何高級別的OOP語言。 – Vadiklk
你的問題太含糊。我們需要知道這個函數將做什麼,它究竟返回了什麼。 –