Mat*_*ler 2 arrays singleton design-patterns class objective-c
经过大量的学习,我开始编写我的第一个应用程序.
在我的代码中,我有一个名为"Measurement"的类.我想实现一系列测量.这个测量数组需要可以跨多个视图控制器访问,所以我为数组创建了一个名为"MeasurementsArray"的自定义类,并将其组成一个单例.
我已经这样做了,代码按预期工作.但是现在我已经有了它,我想确保我有易于理解的代码,并且我遵循传统的Objective-c设计模式.
如果事实上我不需要测量数组是一个单例,那么这个数组似乎属于"Measurement"类作为类方法.但我的理解是,当一个类是单例时,只能有一个类的实例.
但不知何故,有一个名为"MeasurmentsArray"的单独课程对我来说似乎有点笨拙.
我的问题:
我是以正确的方式接近这个,还是我错过了什么?
如果我确实需要将Measurements数组拆分为一个单独的类以使其成为单例,那么"MeasurementsArray"是否恰好是一个合适的类名?如果没有,请提供您将用于此类情况的命名约定.
编辑:在一些初步答案之后,关于应用程序功能的一些说明可能会有所帮助.
它是一种健身应用程序,可记录,保存和跟踪体脂百分比和体重.每当用户记录他的身体脂肪和体重时,它就成为"测量"类的一个实例.需要一系列测量来跟踪体重和体脂随时间的变化.需要单例,因为多个视图控制器需要访问该数组.
需要单例,因为多个视图控制器需要访问该数组.
除了依赖单例之外,还有其他更好的方法来在对象之间共享数据.
视图控制器通常由应用程序委托或其他视图控制器创建.应用程序的数据模型(在这种情况下,这是您的测量数组)通常也由应用程序委托创建.因此,当app委托创建视图控制器时,它还可以为该控制器提供指向数据模型的指针.如果该控制器创建任何视图控制器,它同样可以共享其指向数据模型的指针.
将数据模型从app委托传递到视图控制器,从一个视图控制器传递到下一个视图控制器,使代码更易于维护,测试,重新配置和重用,因为它避免了依赖于某些预定的,全局可访问的对象.