一些设计上的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些设计上的问题相关的知识,希望对你有一定的参考价值。

最近在写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

 

以上是关于一些设计上的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用片段上的按钮更改片段

Android 上的 Kotlin:如何在片段中使用数据库中的 LiveData?

如何使用 Android 片段?

纹理上的片段着色器

炫酷 CSS 背景效果的 10 个代码片段

rootView上的Android片段空指针异常[关闭]