我在想,如果一个类只能在另一个类中实例化,那么在该类中嵌套使用它是正确的。我认为这将有助于我们良好的设计。当我查看我的项目时,我几乎从未见过这样的嵌套结构。但是如果我尝试嵌套类,那么这次我的脑海中会出现另一个问题。例如
我有棋盘类、移动类(如 ShortCastle、LongCastle、EnPassant、Promote)和棋子(如 Pawn、Queen、Rook、Knight 等)。因此很明显,棋盘类将实例化棋子类,棋子类将实例化移动类。对于一个好的设计,Promote move 类应该嵌套在 Pawn 中,因为只有 pawn 才能提升自己。短城堡和长城堡应该嵌套在 King 中,因为只有 King 才能拥有这种类型的招式。
尝试将所有 Piece 类放入 Board 类中看起来并不是一个好的设计,因为 8-9 类将位于 Board 类中,这真的很烦人,一个 Board 类文件太大且难以读取。我更喜欢将每个 Piece 类保留在另一个中文件。很好,我们可以创建部分 Board 类,但是 8-9 个部分 Board 类文件将保存每个块类,这不是很烦人吗?最好不要让它们嵌套吗?与 Pieces 相同 仅为另一个 Move 类型类创建另一个部分 Piece 文件?如果嵌套类只占用很小的空间,那么不会有任何问题,但是如果它需要很多方法呢?
我认为你对嵌套类太慷慨了。
看一下this http://msdn.microsoft.com/en-us/library/tdz1bea9%28v=VS.71%29.aspx嵌套类型的设计指南。
如果满足以下条件,请勿使用嵌套类型:
- 该类型必须通过以下方式实例化
客户端代码。如果一个类型有一个 public
构造函数,它可能不应该
被嵌套。这背后的理由
准则是如果嵌套类型
可以实例化,它表明
该类型在
图书馆自己。您可以创建
它、使用它、销毁它,而不需要
使用外部类型。因此,它
不应嵌套。内型
不应在室外广泛重复使用
外部类型不带
与外部类型的关系。
- 对类型的引用通常是
在客户端代码中声明。
这些作品可能属于一个委员会(作为成员的作品集?),但可以在没有它的情况下共存。你可能会。想要重复使用没有片段(主题等)的板,也想要重复使用没有板的片段(位置等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)