一些设计上的问题

最近在写Richman4L,有的时候就遇到一些问题。

在游戏中有一些卡片,比如红卡和黑卡,以及陷害卡之类的。

于是有一个基类,叫做Card。

所有的卡片都能够被使用,于是Card应该有一个Use的抽象方法。

然而在使用的时候,有的卡片希望一些参数,比如红卡黑卡希望一个股票,陷害卡希望一个玩家之类的参数。

参数的类型不一样,数目也不一样。

应该提供一个方便的办法让调用者得知这个方法希望什么参数,也能方便的调用。

我想到了反射的那一套方法的参数,是一个数组。

于是我也制造了一个ArgumentsContainer。

它象是这样。

 

public sealed class ArgumentsContainer

{

    public List <object> Arguments { get ; }

    public ArgumentsContainer ( params object [ ] args ) { Arguments = new List <object> ( args ) ; }

}

 

它作为Use方法的参数。

对于如何得知这个参数,我觉得这需要另外的操作。

于是有一个Arguments的属性,返回一个CommandArgumentInfo的数组。

CommandArgumentInfo包含该有的参数的介绍和要求。

然后又想到Paradox家游戏的那种风格。

于是又搞了一个ArgumentDefineDomain。

我还没有想出更好的主意,暂时就这样吧。

 

希望你的更好的建议。

 

代码在Github:https://github.com/Infinicken/Richman4L

 

转载于:https://www.cnblogs.com/Wencey/p/6238529.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值