在JavaScript里,可以直接传递函数引用(被传递的函数可视为类型为Function的对象),如下:
function sayHello(){ alert("hello, world!"); } <input type="button" onclick="sayHello()"/
在Java里,目前应该还不可以这样传递。但是可以使用函数式对象实现类似功能。函数式对象指仅包含一个方法的对象,并且此方法应满足以下条件:
1.在任何情况下,使用相同的输入参数值应返回同一个结果
2.在任何情况下,执行此方法不会修改对象的状态
以下方法不能视为函数方法:
class DiscountOne { public double percent=1.0d; //如果percent改变,对于相同的price,将返回不同的计算结果 public double discount(double price){ return price*percent; } } class DiscountTwo { public int count=100; //调用此方法将修改count属性值,即改变了对象状态, //而计算结果与对象状态有关 public double discount(double price){ if(count<=0)return price; count--; return price*0.5d; } }
实现策略设计模式首先需要有定义策略的接口,如下:
public interface Discount { double discount(double price); }
接着声明函数式策略类
public class DiscountByPercent implements Discount{ private double percent; public DiscountByPercent(double percent){ this.percent=percent; } public double discount(double price) { return price*percent; } }
可以使用常量声明常用的函数式对象,以避免重复创建对象:
public static final Discount HALF_PRICE_DISCOUNT=new DiscountByPercent(0.5d);
相关推荐
spring4.21最新版本,spring官网改版资源有些难找,以此分享,不浪费各位宝贵时间!
Keil MDK4.21 破解及注册机
IPhone 4.21 固件 越狱工具,可以越狱 IPAD IPHONE系列最新固件。
Spring 4.21 全部jar
chipgenius_v4.21.0701
P2P终结者4.21破解最高权限P2P终结者4.21破解最高权限
一般到学校指定办公室或专用教室管理员处登记预约,网络版的《多功能教室预约系统C4.21》可以让教师预约变得更方便、灵活,只要有上网的电脑,无论何地、何时,都可以实现专用教室预约使用登记。既节约纸张,又方便...
Mcake的市场营销策略研究4.21.zip
USB设备主控芯片检测工具
联想工程师专用小工具 静态IP设置工具V4.21.1联想工程师专用小工具 静态IP设置工具V4.21.1联想工程师专用小工具 静态IP设置工具V4.21.1联想工程师专用小工具 静态IP设置工具V4.21.1联想工程师专用小工具 静态IP设置...
此为药易通7.3.4.21原版安装文件,用破解补丁后可免狗
下载软件 很牛的 很好用的啊 速度下载啊
P2P终结者是一款网络管理软件,用来管理局域网中BT、电驴等大量占用带宽的下载软件,可以帮助您更好的管理您的局域网。它可以运行在Windows2000/XP/2003操作系统上。...*设置标准模式为默认以适应大部分网络环境
IAR Embedded Workbench IAR for MSP430 V4.21.2注册机
水沸腾4.21
更新ios的秘钥,如果有新的,闪退的 请先安装这个版本的。
可以远控流量……远控视频,远控电脑!!反正好东西……
解压后安装,点击注册即可,安装文件在解压后的文件里 解压后安装,点击注册即可,安装文件在解压后的文件里 解压后安装,点击注册即可,安装文件在解压后的文件里
chipgenius芯片精灵 4.21.0701 ,U盘制作工具, 芯片精灵是一款USB设备芯片型号检测工具,chipgenius芯片精灵可以自动查询U盘、MP3/MP4、读卡器、移动硬盘等一切USB设备的主控芯片型号、制造商、品牌,并提供相关资料...
Premiere Pro CS4 v4.21 CN Lite\安装清理程序