我正在开发一个基于命令行界面的文字游戏。我用C编写它,但是有多种方法可以使用Objective重构代码:
NSDictionary将数据存储在列表中(因为基础框架更容易读/写,但体积要大得多)而不是纯文本char*名称与其int/enum等效项之间进行转换的需要(使用和enum表示事物可以减少使用普通非OO时的内存使用量和复杂性,否则我将不得不在任何地方使用strncmp )。我想知道的是,混合OO-和非OOP是否有缺点。它仍然是命令行,这意味着大部分都是用纯非OO编写的。
有什么理由不让我把这些混在一起吗?
发布于 2015-09-14 18:45:56
.c后缀切换到您需要的任何地方的.m后缀,而不会破坏文件中的代码。也就是说,在重构游戏时,您的主要关注点应该是简化代码。如果您非常了解面向对象,那么简化您的代码很可能意味着使它非常面向对象。如果您还不知道如何很好地使用面向对象,那么尝试为每个问题找到至少两种不同的面向对象解决方案,并在每种情况下尝试选择更好的解决方案。但是不要试图将面向对象和非面向对象的代码分开。
关于您的enum/char*问题:我建议您阅读串实习并尝试在您的游戏中实现它。因为,一旦有了字符串,就可以通过比较它们的指针来比较字符串。这应该允许您以灵活和高效的方式减少enum的使用。
https://softwareengineering.stackexchange.com/questions/297220
复制相似问题