我有一个单例类,它基本上接口我所有的 HTTP 请求。所以它看起来像这样:
Server <--> Singleton <---> view controllers --> views
不好吗?为什么人们告诉我单例破坏了模块化?我认为这是实现 http 请求的好方法,因为我需要对 JSON 响应做一些事情,而且我不希望我的视图控制器处理这些事情。
我有一个单例类,它基本上接口我所有的 HTTP 请求。所以它看起来像这样:
Server <--> Singleton <---> view controllers --> views
不好吗?为什么人们告诉我单例破坏了模块化?我认为这是实现 http 请求的好方法,因为我需要对 JSON 响应做一些事情,而且我不希望我的视图控制器处理这些事情。
是的,这是个好主意。事实上,你的单例只是一个与其他控制器对话的控制器。这不是糟糕的 MVC。
此外,如果您有多种输出格式(JSON、XML、HTML 等),这会更方便。你可以让 Singleton 处理这个。再加上它是 DRYer。
我认为,您使用的是很好的方法,而不是创建多个实例来处理 HTTP,拥有一个网关很好。
您可以进一步在内部拥有另外两个类,用于通过发送适当的类型来构造 HTTP 请求 ,其他类将处理您的JSON 解析内容并将结构良好的 JSON 数据传递给您的ViewConrollers。