在使用大量 HTTP 请求的应用程序中使用单例有什么问题?
我有一个单例类,它基本上连接我所有的 HTTP 请求。所以它看起来就像这样:
Server <--> Singleton <---> view controllers --> views
这很糟糕吗?为什么人们告诉我单例破坏了模块化?我认为这是实现 http 请求的好方法,因为我需要对 JSON 响应执行一些操作,并且我不希望我的视图控制器处理这些内容。
I have a singleton class that basically interface all my HTTP requests. So it pretty much looks like this:
Server <--> Singleton <---> view controllers --> views
Is it bad? Why do people tell me that singleton breaks modularity? I think it's a good way to implement http requests, since I need to do some stuff with the JSON response, and I don't want my view controllers to handle those.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这是个好主意。事实上,您的单例只是一个与其他控制器通信的控制器。这是不错的 MVC。
此外,如果您有多种输出格式(JSON、XML、HTML 等),这会更方便。你可以让 Singleton 来处理这个问题。而且它更干燥。
Yes, this is a good idea. In fact, your singleton is simply a controller which talks to other controllers. This is not bad MVC.
Also, this is handier if you have multiple output formats (JSON, XML, HTML, etc). You can let the Singleton handle this. Plus it's DRYer.
我认为,您使用了很好的方法,而不是创建多个实例来处理 HTTP,拥有一个网关很好。
您还可以在内部拥有另外两个类,其中一个用于通过发送适当的类型来构造 HTTP 请求,另一个将处理您的JSON 解析东西并将结构良好的 JSON 数据传递给您的ViewConrollers。
I think, you are using good approach, Instead of Creating multiple instances to deal with HTTP, It's nice to have an single gateway.
You could further internally have two more class one for constructing the HTTP requests by sending the appropriate type and other will handle your JSON parsing stuff and pass an well structured JSON data to your ViewConrollers.