作为一个背景,我即将成为Comp E的高年级学生,目前正致力于一个项目,我的实习涉及使用Monotouch和C#的iPad开发。作为一个在学期中同时拥有多个项目的学生,代码风格通常被完全忽略,以使最终产品正常运行。我相信你们都知道那是什么样的。
现在我有更多的时间来开发,规划和设计我的代码,我陷入了“快速简单的方式”或“复杂的棘手方式”之间。我将概述我的设计(开头可能很糟糕)并欢迎所有建议。
我正在创建一个简单的iPad应用程序,用户可以选择汽车制造,然后该选择使用不同的模型填充屏幕另一侧的图像。现在,当用户选择该模型时,它会将它们带到另一个屏幕,在那里我要求更多信息,例如价格,年份等等。在第二个屏幕上,我将所选汽车模型的图像作为“提醒”的内容当屏幕改变时,你会再次搜索。现在填充该图像取决于选择了哪个品牌以及哪个品牌。这些都是基于2D信息阵列完成的。所以Cars [0] [3]将是Acura-TSX车型,Cars [1] [0] - BMW 1系。
现在试图摆脱将大家扔进一个巨大MAIN的大学思维模式,我知道它并不漂亮,但它起作用,大学是关于点而不是风格,我已经开始将事情分解为函数和辅助函数。当我调用将切换屏幕并最终加载图像的函数时,我必须传递makeIndex和modelIndex,这些是在先前选择make和models之后设置的,因此有一堆调用/返回和变量传递。在我看来,解决这个问题的简单方法就是2个全局变量,但我知道这是不好的做法,我正在努力开发更好的编码风格。
您对如何做到这一点有什么建议?简单地说“拧好练习”并选择快速有效的方法会更好吗?或者我是否应该花时间并为了多种功能而重新开始传递,因为他们中的许多人需要知道这些信息?
感谢您花时间阅读本文并感谢您的建议。
- 亚当
答案 0 :(得分:2)
为什么不使用单例模式,并且有类似的东西:
public sealed class CarConfigurationSettings
{
public string Make{get; set; }
static readonly CarConfigurationSettings instance=
new CarConfigurationSettings();
static CarConfigurationSettings()
{
}
CarConfigurationSettings()
{
}
public static CarConfigurationSettings Instance
{
get
{
return instance;
}
}
}
然后你的应用中的任何地方都可以去:
var make = CarConfigurationSettings.Instance.Make;
尼斯。
答案 1 :(得分:1)
它应该归结为你的目标。你有兴趣:
这个实习项目听起来像是一个真正的客户。实习结束后,谁将维护此申请?在您离开或实习结束后,将花费多少时间和精力来增强产品?
我建议坚持你所走的道路。您建议您有更多时间进行规划和设计。你的同事会很感激你投入了一些智力,甚至把它带到了一个社区来获得反馈。
答案 2 :(得分:0)