0
源码下载:=)+@+%& "+ -#%91%#$%&=)
将方法作为方法的参数
我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问候的话语:
)"*$+01 $0FB )#$%0%/
0000做某些额外的事情,比如初始化之类,此处略
0009%$#=F$%%(
7
)"*$+01 $09%$#=F$%#$%0%/
0000 %# 2$3$%4, %$%640%(
7
暂且不管这两个方法有没有什么实际意义。FB ) 用于向某人问好,当我们传递代表某人姓名的 % 参数,比如说“G$'H,进去的时
候,在这个方法中,将调用 9%$#=F$% 方法,再次传递 % 参数,9%$#=F$% 则用于向屏幕输出“, %$%6G$'H。
现在假设这个程序需要进行全球化,哎呀,不好了,我是中国人,我不明白“, %$%H是什么意思,怎么办呢?好吧,我们再加个中文版的问候
方法:
)"*$+01 $0=$%#F$%#$%0%/
0000 %# 2$3$%4早上好640%(
7
这时候,FB ) 也需要改一改了,不然如何判断到底用哪个版本的 F$% 问候方法合适呢?在进行这个之前,我们最好再定义一个枚
举作为判断的依据:
)"*$+0%"03%"/
0009%$#=6=$%#
7
)"*$+01 $0FB )#$%0%63%"%/
0000做某些额外的事情,比如初始化之类,此处略
000#$=%/
0000000+#03%"9%$#=
0000000009%$#=F$%%(
0000000000*!(
0000000+#03%"=$%#
000000000=$%#F$%%(
0000000000*!(
0007
7
?I,尽管这样解决了问题,但我不说大家也很容易想到,这个解决方案的可扩展性很差,如果日后我们需要再添加韩文版、日文版,就不得
不反复修改枚举和 FB )方法,以适应新的需求。
在考虑新的解决方案之前,我们先看看FB ) 的方法签名: