需要iOS应用程序中的帮助';中国的建筑。是否使用单例?
我有一个类需要iOS应用程序中的帮助';中国的建筑。是否使用单例?,ios,Ios,我有一个类ServiceClass,这个类中有一个闭包函数,例如LoginViaEmail,调用apilyerAPILayer调用HttpLayer和JSONHandler并将输出返回到ServiceClassServiceClass进一步向ViewController返回一些信息 我的问题是 我是否要将ServiceClass设置为Singleton?但是每个人都说他们是反模式的,而不是一个 如果它们如此糟糕,为什么要使用它们?例如NSFileManager、NSWorkspace、UIApp
ServiceClass
,这个类中有一个闭包函数,例如LoginViaEmail
,调用apilyer
APILayer
调用HttpLayer
和JSONHandler
并将输出返回到ServiceClass
<当接收到completionblock
时,code>ServiceClass进一步向ViewController
返回一些信息
我的问题是
ServiceClass
设置为Singleton?但是每个人都说他们是反模式的,而不是一个ServiceClass
的实例吗?这不会占用太多的内存吗如果您的ServiceClass内部不需要某种状态,我会在内部使用
class func
并这样调用它:
ServiceClass.fetchSomething { fetchedData in
self.updateUI(with: fetchedData)
}
如果您的ServiceClass内部不需要某种状态,我会在内部使用
class func
并这样调用它:
ServiceClass.fetchSomething { fetchedData in
self.updateUI(with: fetchedData)
}
您可以为此使用singleton类,但如果您这样做,那么您还应该管理任何类似于网络处理程序队列的功能 因为网络请求应该是异步的,并且支持并发 在应用程序中的任何时间点,您可能需要一次执行多个请求 使用单例模式,该任务将稍微复杂一些,并且需要更多地管理多个请求 所以,如果这不是一个问题,那么您可以轻松地使用单例模式 否则,您可以创建NSObject的类别。此类别将启动请求并将其发送给其他请求处理、解析类,然后回调响应给发送方 使用NSObject的类别,您将受益于可以从任何类(作为任何其他帮助器类的模型、控制器)发起请求 例如,正如我所使用的:
self.startPostRequest(withInput: payload,
requestApi: kApiScheduleList,
httpMethod: kHttpMethodPost,
headerDict: nil,
success: { (response) in
}, failure: { (error) in
})
希望这会有所帮助
如果您需要讨论任何问题,请告诉我。您可以使用singleton类进行讨论,但如果您这样做,则还应该管理任何类似网络处理程序队列的功能 因为网络请求应该是异步的,并且支持并发 在应用程序中的任何时间点,您可能需要一次执行多个请求 使用单例模式,该任务将稍微复杂一些,并且需要更多地管理多个请求 所以,如果这不是一个问题,那么您可以轻松地使用单例模式 否则,您可以创建NSObject的类别。此类别将启动请求并将其发送给其他请求处理、解析类,然后回调响应给发送方 使用NSObject的类别,您将受益于可以从任何类(作为任何其他帮助器类的模型、控制器)发起请求 例如,正如我所使用的:
self.startPostRequest(withInput: payload,
requestApi: kApiScheduleList,
httpMethod: kHttpMethodPost,
headerDict: nil,
success: { (response) in
}, failure: { (error) in
})
希望这会有所帮助
如果您需要讨论任何一点,请告诉我。如果您想编写有效、独立和不耦合的测试,请不要使用一堆单例。如果您不关心测试,那么单例就可以了 这是我使用的中间屋结构:
如果您想编写有效、独立且不耦合的测试,请不要使用一堆单例。如果您不关心测试,那么单例就可以了 这是我使用的中间屋结构:
请访问下面的链接,Singleton类是不错的选项,因为它易于实现和访问。您可以跟随请访问下面的链接,Singleton类是不错的选项,因为它易于实现和访问。您可以跟随