我是一个新手开发者,最近正在练习MVVM设计模式。为了在ViewModel和Controller之间通信,我使用闭包。我知道也可以使用Delegate。但是,有没有任何惯例或原因要遵循特定的通信方式呢?我有点困惑。任何帮助将不胜感激。
我是一个新手开发者,最近正在练习MVVM设计模式。为了在ViewModel和Controller之间通信,我使用闭包。我知道也可以使用Delegate。但是,有没有任何惯例或原因要遵循特定的通信方式呢?我有点困惑。任何帮助将不胜感激。
根据您的应用程序结构,您有很多选择。其中之一是使用单例模式。对于不太复杂的应用程序,我更喜欢这种方法。数据处理(存储、结构化)位于单例类中。不同的视图从此单例类访问数据。例如,您可以使用名为DataManager或类似名称的单例。不同的控制器和其他简单结构从此单例中访问所需的数据。
以下是一个非常简单的示例代码:
class DataManager
{
static let sharedInstance = DataManager()
var _value: Int = 0
var value: Int
{
get
{
return _value
}
set
{
_value = newValue
}
}
}
class DemoController1
{
let dm = DataManager.sharedInstance
func incValue()
{
dm.value += 1
}
}
class DemoController2
{
let dm = DataManager.sharedInstance
func mulValue()
{
dm.value *= 2
}
}
let dm = DataManager.sharedInstance
let dc1 = DemoController1()
let dc2 = DemoController2()
print ("value: \(dm.value)")
dc1.incValue()
print ("value: \(dm.value)")
dc1.incValue()
print ("value: \(dm.value)")
dc2.mulValue()
print ("value: \(dm.value)")