Javaで関数オブジェクトを実装しようとしています。Unitクラスがあり、Unitオブジェクトのほとんどの初期化で使用されるデフォルトの加算関数があります。ただし、いくつかの問題については、別の加算関数が必要です。コードは次のようになります。
public class Unit() {
public Unit(unitType) {
if (unitType == "specialType") {
additionFunc = defaultFunc } else {
additionFunc = specialFunc }
}
}
public int swim() {
return additionFunc()
}
// definiion of regularFunc
// definition of specialFunc
}
次に、メインファイルから:
Unit fish = new Unit(regularTyoe);
Unit fatFish = new Unit(specialType);
fish.swim(); //regular function is called
fatFish.swim(); //special function is called
それだけです..これがどのように行われるか知っている人はいますか?