2012-04-16 134 views
0

我已经看了其他问题,我仍然在努力,所以如果有人可以花时间看看这个,它将不胜感激:)。创建一个模型类

我目前有我的应用程序工作正常,但我一直在阅读并决定它不适合MVC设计模式。我仍然在学习很多关于设计的知识,并且希望对其进行编辑,使其更加完善。

我想我知道该怎么进入我的模型类,我认为它应该在应用程序委托中实例化。我的问题是:为什么在那个位置?懒惰的实例化是最好的/正确的方法来做到这一点?最后,一旦启动,我使用一个属性来访问该类,或者你使用特殊的方法吗?

抱歉超负荷;我也试图让我的声望足以在其他问题上投票! :)

+0

目前您的应用程序结构如何? – 2012-04-17 06:12:47

+0

我拥有viewcontroller中的所有数组,字典和字符串,我相信不应该这样做。我想有一个模型类,它有数据,然后以某种方式传递给viewcontroller类。我认为你必须创建一个类的实例,当你想使用它的时候带上头文件,但我不是100%确定的。如果您可以提供一些指导,我会给予一些积极的反馈,并永远感激! :) – 2012-04-17 15:03:18

回答

1

这真的很难回答这样的一般问题,因为有很多方法可以实现任何特定的项目。一般来说,我不认为在应用程序委托中实例化模型类是必然的。由于控制器类在模型和视图之间进行调解,因此在控制器类中实例化模型通常会更好 - 例如,我有一个跟踪花园中植物的程序,而我的控制器类是NSArrayController的。在控制器中创建新的工厂对象似乎很有意义,然后将它们添加到其排列的对象中。我尽可能少地在班级之间建立联系(通过特性或ivars),认为每个班级应该尽可能地照顾自己的业务。通常情况下,您不需要引用该类,因为您正在调用类方法来创建新对象,然后这些对象可以访问该类的任何实例方法,而无需明确引用该类。

+0

谢谢@rdelmar。那么你在控制器类中分配和初始化,然后从那里调用方法?我在网上看过懒惰的实例化教程,是否确保创建一个对象的方法?您是否必须导入模型的头文件才能完成所有这些工作?抱歉超负荷! :) – 2012-04-18 05:10:25

+1

是的,如果您在控制器类中使用alloc inits创建新的模型对象,那么这些对象可以调用在模型类中实现的任何实例方法。我不确定你的意思是“确保创建一个对象”,但我认为懒惰的实例化是创建模型对象的好主意。而且,是的,你会为你的模型类导入头文件。 – rdelmar 2012-04-18 06:06:55

+0

谢谢,这很有帮助。我的意思是,如果我在一个控制器中分配和初始化,然后又想在另一个控制器中再次使用该模型(例如),再次分配可能会是一件坏事?我正确地认为使用懒惰实例化会确保只有一个模型创建,否则'创建'将被返回?道歉,但正如你可以从我的代表看到的,我很新,并且自学:) – 2012-04-18 06:58:14