打字猴:1.700472693e+09
1700472693 }
1700472694
1700472695 }
1700472696
1700472697 运行结果如下所示:
1700472698
1700472699 姓名:张三 性别:男 薪水:1800 工作:编写Java程序,绝对的蓝领、苦工加搬运工
1700472700
1700472701 姓名:李四 性别:女 薪水:1900 工作:页面美工,审美素质太不流行了!
1700472702
1700472703 姓名:王五 性别:男 薪水:18750 业绩:基本上是负值,但是我会拍马屁啊
1700472704
1700472705 本公司的月工资总额是101150
1700472706
1700472707 大家可以再深入地想象,一堆数据从几个角度来分析,那是什么?即数据挖掘(Data Mining),数据的上切、下钻等处理,大家有兴趣看可以翻看数据挖掘或者商业智能(BI)的书。
1700472708
1700472709
1700472710
1700472711
1700472712 设计模式之禅 25.4.3 双分派
1700472713
1700472714 说到访问者模式就不得不提一下双分派(double dispatch)问题,什么是双分派呢?我们先来解释一下什么是单分派(single dispatch)和多分派(multiple dispatch),单分派语言处理一个操作是根据请求者的名称和接收到的参数决定的,在Java中有静态绑定和动态绑定之说,它的实现是依据重载(overload)和覆写(override)实现的,我们来说一个简单的例子。
1700472715
1700472716 例如,演员演电影角色,一个演员可以扮演多个角色,我们先定义一个影视中的两个角色:功夫主角和白痴配角,如代码清单25-25所示。
1700472717
1700472718 代码清单25-25 角色接口及实现类
1700472719
1700472720 public interface Role{
1700472721
1700472722 //演员要扮演的角色
1700472723
1700472724 }
1700472725
1700472726 public class KungFuRole implements Role{
1700472727
1700472728 //武功天下第一的角色
1700472729
1700472730 }
1700472731
1700472732 public class IdiotRole implements Role{
1700472733
1700472734 //一个弱智角色
1700472735
1700472736 }
1700472737
1700472738 角色有了,我们再定义一个演员抽象类,如代码清单25-26所示。
1700472739
1700472740 代码清单25-26 抽象演员
1700472741
1700472742 public abstract class AbsActor{
[ 上一页 ]  [ :1.700472693e+09 ]  [ 下一页 ]