java基础总结 --- enum枚举实现多路分发 石头、剪刀、布游戏示例

 多路分发:
当你处理多种交互类型时,程序可能会变得相当杂乱。举例来说,如果一个系统要分析
和执行数学表达式。我们可能会声明Number.plus(Number)、Number.mulitple(Number)等等,

其中Number是各种数字对象的超类。然而,当你声明a.plus(b)时,你并不知道a或者b的确切类型,那你如何能让它们正确交互呢?

你可能从未思考过这个问题的答案。Java只支持单路分发。也就是说,如果要执行的操作包含了不止一个类型

   未知的对象时,那么Java的动态绑定机制只能处理其中一个的类型。这就无法解决我们上面提到的问题。所以,
   你必须自己来判断其他的类型,从而实现自己的动态绑定行为。
  
   解决上面问题的办法就是多路分发。多态只能发生在方法调用时,所以,如果你想使用两路分发,那么就必须有两个
   方法调用:
       第一个方法调用决定第二个未知类型,第二个方法调用决定第二个未知类型。
       要利用多路分发,程序员必须为每一个类型提供一个实际的方法调用,如果你要处理两个不同的类型体系,就需要
     为每个类型体系执行一个方法调用。
         一般而言,程序员需要由设定好的某种配置,以便一个方法调用能够引出更多的方法调用,从而能够在这个过程中
     处理多种类型。

     为了达到这种效果,我们需要与多个方法一同工作:因为每个分发都需要一个方法调用。     


下面使用多种方法实现了石头、剪刀 、布 游戏,其中就使用了enum分发机制

猜拳第一种实现:

package com.zghw.base.enumx;

import static com.zghw.base.enumx.Outcome.*;

impo
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值