这是关于课堂设计的理论问题(Objective-C,RestKit)。
我几天前开始做项目,我写了一些测试,现在是时候我得到了服务器响应的样子。应用程序将使用RestKit
。在app中,其中一个类将是例如ABCUser
。应用程序应该能够注册并使用凭据登录用户到服务器,服务器应该返回完整的ABCUser
对象。如何在客户端(iOS App)上设计它?
现在我有ABCUser
类,其中包含用户名,密码,电子邮件和其他内容等属性,并且类ABCUser+API
已经有类方法用于与服务器通信{{1 },registerUser:withBlock:
,loginUser:withBlock
)。当我想通过应用程序注册用户时,我需要仅使用凭据创建logoutUser:withBlock:
对象,我必须将其发送到服务器,然后我从服务器接收完整对象。这是好的设计吗?
也许我应该使用ABCUser
类的Proxy
个对象来登录?此类将只具有类似凭据的属性。这是好概念吗?
也许好的解决方案是为注册和记录用户创建一些服务类?可能是ABCUser
和ABCRegisterService
?
提前感谢您的意见。
答案 0 :(得分:1)
这是基于意见的,取决于你习惯和习惯的东西。您目前的解决方案是可接受的和简约的。这个类别的含义相对清楚,将来可以维护。
您的其他建议会添加更多课程以获得微不足道的好处。他们将从模型中删除可被归类为不合适的代码,但它们也会使代码库更加冗长,更难以理解和维护。除非您有基于服务或代理的整体方法,否则这不太可能有所帮助。
当前解决方案可能缺少的主要内容是整体API结构和活动/连接管理。通过将API方法放在每个模型对象的类别中,很难看到API形状,并且随着API的增长,您在模型对象之间添加无意义的依赖关系,并允许更复杂(有用)的功能。管理并发连接的数量也更难。对此的适当解决方案可以是单独的数据控制器,它根据您的模型对象提供API的公共接口,并包含(内部隐藏)所有映射信息和与服务器的交互。