java中实现类似函数指针的功能
2012-11-06 20:13
483 查看
可以用接口实现:
如果不用这种“函数指针”,以上代码就会是:
来源:http://my.oschina.net/soitravel/blog/36029
public class FunctionPointerTest { public static void main(String... args){ Player[] players = new Player[5]; for(int i = 0;i<players.length;i++){ players[i] = new Player(); } pressButton(players,new StopButton()); pressButton(players,new StartButton()); } public static void pressButton(Player[] players,PlayerButton button){ for(int i=0;i<players.length;i++){ button.buttonPressed(players[i]); } } } class Player { public void start(){ System.out.println("start"); } public void stop(){ System.out.println("stop"); } } interface PlayerButton { public void buttonPressed(Player player); } class StopButton implements PlayerButton{ @Override public void buttonPressed(Player player) { player.stop(); } } class StartButton implements PlayerButton{ @Override public void buttonPressed(Player player) { player.start(); } }
如果不用这种“函数指针”,以上代码就会是:
public class FunctionPointerTest { public static void main(String... args){ Player[] players = new Player[5]; for(int i = 0;i<players.length;i++){ players[i] = new Player(); } stopAll(players); startAll(players); } public static void stopAll(Player[] players){ for(int i=0;i<players.length;i++){ players[i].stop(); } } public static void startAll(Player[] players){ for(int i=0;i<players.length;i++){ players[i].start(); } } }看完之后,找到了重用代码的思路了:)
来源:http://my.oschina.net/soitravel/blog/36029
相关文章推荐
- Java利用接口和类来实现类似函数指针的功能
- java中实现类似函数指针的功能
- java中实现类似函数指针的功能
- java实现类似函数指针功能
- java中实现类似函数指针的功能
- Java实现类似eval()函数或exec()函数的功能
- Java中实现类似于C语言的中函数指针的功能
- 补交 20155202 蓝墨云班课 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能
- mysql 实现类似开窗函数的功能
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- java web中实现同一帐号同一时间只能一个地点登陆(类似QQ登录的功能)
- C++实现类似JAVA反射的基本功能
- PowerShell函数实现类似重载功能实例
- java通过interface实现C中的函数指针
- 使用Python函数和字典实现Java中的switch功能
- 自定义实现类似Java的Integer.parseInt(String str)函数
- 在android的Java层、JNI层、Native C++层都实现了类似的函数,它们是层层向下调用
- Qt 实现类似sleep功能的函数
- 请写一个函数,实现类似的strcpy的字符串复制功能
- C#函数如何实现类似多个返回值的功能