我有类型的Rock
,Paper
和Scissors
.这些是Rock,Paper,Scissors游戏的组件或"手".鉴于两名球员的手,比赛必须决定谁获胜.如何解决存储此链表的问题
没有将各种手相互耦合?目标是允许在游戏中添加新手(例如Jon Skeet)而不更改任何其他游戏.
我对代理的任何想法持开放态度,但不对大型switch语句或代码重复持开放态度.例如,引入一个管理链的比较的新类型是好的,只要我不需要为我添加的每个新手更改它.再说一遍,如果你可以合理地拥有一个必须为每一个新手或一只手改变的代理,那也是受欢迎的.
这是一个设计101问题,但我很好奇人们可以为此提出什么解决方案.显然,这个问题很容易扩展到更大的系统,有更多的组件,它们之间有任意复杂的关系.这就是为什么我要提出一个非常简单而具体的例子来解决.任何使用的范例,OOP或其他方式都是受欢迎的.