规划应用程序

  这个应用程序的类库 Ch10CardLib 包含类。在开始编写代码前,应规划一下需要的结构和类的功能。

  1. Card 类

  Card 类基本上是两个只读字段 suitrank 的容器。把字段指定为只读的原因是 "空白" 的牌是没有意义的,牌在创建好后也不能修改。为此,要把默认的构造函数指定为私有,并提供另一个构造函数,使用给定的 suitrank 建立一副扑克牌。

  此外,Card 类要重写 System.ObjectToString() 方法,这样才能获得人们可以理解的字符串,以表示扑克牌。为使编码简单一些,为两个字段 suitrank 提供枚举。

  Card如图 10-9 所示

图 10-9

  2. Deck 类

  Deck 类包含 52 个 Card 对象。我们为这些对象使用一个简单的数组类型。这个数组不能直接访问,因为对 Card 对象的访问要通过 GetCard() 方法来实现,该方法返回指定索引的 Card 对象。这个类也有一个 Shuffle() 方法,用于重新排列数组中的牌。 Deck 类 如图 10-10 所示。

图 10-10