在多次需要使用不同返回类型的情况下,两次编写同一方法的最佳实践是最好的做法吗?

阿尔法罗

我有一个api类,它进行api调用,并且大多数调用是相同的,但是有些返回某些内容(JSON数据),而有些则不然。还调用了仅检查参数是否已注册并返回true或false的调用。因此,目前我们有3个api调用,它们具有完全相同的代码,但几乎没有差异或返回值。

这是两个示例,第一个示例将使用JSON数据设置内部类属性,第二个示例将返回true或false:

///Call an api with the given url param
private func call(){
    let request = NSMutableURLRequest(URL: NSURL(string: userApiCallUrl)!)
    request.HTTPMethod = "POST"

    request.HTTPBody = postParam.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
        guard error == nil && data != nil else {
            // check for fundamental networking error
            print("error=\(error)")
            return
        }
        if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {
            // check for http errors
            print("statusCode should be 200, but is \(httpStatus.statusCode)")
            print("response = \(response)")
        }

        let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)

        self.setJsonData(responseString!)
    }
    task.resume()
}
///Call to check if UDID exist. Returns true or false. For the moment returns true allways
private func callToCheck()->Bool{
    let request = NSMutableURLRequest(URL: NSURL(string: userApiCallUrl)!)
    request.HTTPMethod = "POST"

    request.HTTPBody = postParam.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
        guard error == nil && data != nil else {
            // check for fundamental networking error
            print("error=\(error)")
            return             }
        if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {
            // check for http errors
            print("statusCode should be 200, but is \(httpStatus.statusCode)")
            print("response = \(response)")
        }

        let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
        print("responseString = \(responseString)")
    }
    task.resume()
    return true
}

代码几乎相同。我的问题是这样做的最佳实践是什么?据我所知,重复代码并不是最好的做法。但是现在我还看不到另一种方式。

战神777

当您调用函数int类型时,请使用一个额外的参数。然后切换int(情况1将返回一些数据,情况2将返回其他类型的数据)。作为一般建议。在您的最终函数中,使用NSMutableDictionary,将初始int分配为键的值,将每种情况的结果分配为具有结果值的其他键。毕竟,您会在回电的情况下知道您要使用的数据以及使用的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

两次调用同一方法时,导致EXC_BAD_ACCESS的完成处理程序

来自分类Dev

需要使用Angular中的唯一值多次使用同一组件两次

来自分类Dev

如何使用Java在同一方法中使用不同的字符串值更新变量?

来自分类Dev

使用单一方法返回不同类型的数据

来自分类Dev

是否想在同一视图上使用不同类型两次使用同一模型?

来自分类Dev

一次调用同一方法多次

来自分类Dev

Rails部分需要使用不同的内容渲染两次,但是输出是相等的

来自分类Dev

异步和等待-处理对同一方法的多次调用-互相锁定/等待吗?

来自分类Dev

如何使用NSubstitute模拟对同一方法的调用序列以在AutoFixture中返回不同的值?

来自分类Dev

如何使用NSubstitute模拟对同一方法的调用序列以在AutoFixture中返回不同的值?

来自分类Dev

使用minitest在模拟上多次调用同一方法

来自分类Dev

茉莉花SpyOn多次使用同一方法

来自分类Dev

如何在不递归的情况下两次调用同一函数

来自分类Dev

如何使用SFINAE创建同一方法的2个不同实现

来自分类Dev

有没有办法在不重复代码的情况下使用不同的配置从 2 个不同的类中运行相同的一组测试两次

来自分类Dev

多个客户端在同一方法中都需要一些不同的功能

来自分类Dev

黄瓜小黄瓜在同一情况下使用不同的数据文件

来自分类Dev

在Powershell中使用不同的输入多次调用同一函数的最佳方法是什么

来自分类Dev

上下文菜单和键盘快捷键在同一方法上返回不同的结果

来自分类Dev

我可以使用不同的排除项在声纳中对同一个Maven项目进行两次分析吗?

来自分类Dev

多次调用同一方法时取消方法调用

来自分类Dev

多次调用同一方法时取消方法调用

来自分类Dev

在C#5中多次异步调用同一方法是否安全?

来自分类Dev

如何通过同一方法多次从父组件刷新子组件?

来自分类Dev

zsh-是否可以在稍加修改的情况下两次运行同一命令?

来自分类Dev

仅在第二条记录存在的情况下,两次连接到同一表

来自分类Dev

MySql:在记录不存在的情况下两次加入同一个表

来自分类Dev

最好查询一次,然后根据返回的列值组织对象,或者在不同条件下查询两次?

来自分类Dev

调用一个函数,该函数需要两次使用不同的闭包的闭包

Related 相关文章

  1. 1

    两次调用同一方法时,导致EXC_BAD_ACCESS的完成处理程序

  2. 2

    需要使用Angular中的唯一值多次使用同一组件两次

  3. 3

    如何使用Java在同一方法中使用不同的字符串值更新变量?

  4. 4

    使用单一方法返回不同类型的数据

  5. 5

    是否想在同一视图上使用不同类型两次使用同一模型?

  6. 6

    一次调用同一方法多次

  7. 7

    Rails部分需要使用不同的内容渲染两次,但是输出是相等的

  8. 8

    异步和等待-处理对同一方法的多次调用-互相锁定/等待吗?

  9. 9

    如何使用NSubstitute模拟对同一方法的调用序列以在AutoFixture中返回不同的值?

  10. 10

    如何使用NSubstitute模拟对同一方法的调用序列以在AutoFixture中返回不同的值?

  11. 11

    使用minitest在模拟上多次调用同一方法

  12. 12

    茉莉花SpyOn多次使用同一方法

  13. 13

    如何在不递归的情况下两次调用同一函数

  14. 14

    如何使用SFINAE创建同一方法的2个不同实现

  15. 15

    有没有办法在不重复代码的情况下使用不同的配置从 2 个不同的类中运行相同的一组测试两次

  16. 16

    多个客户端在同一方法中都需要一些不同的功能

  17. 17

    黄瓜小黄瓜在同一情况下使用不同的数据文件

  18. 18

    在Powershell中使用不同的输入多次调用同一函数的最佳方法是什么

  19. 19

    上下文菜单和键盘快捷键在同一方法上返回不同的结果

  20. 20

    我可以使用不同的排除项在声纳中对同一个Maven项目进行两次分析吗?

  21. 21

    多次调用同一方法时取消方法调用

  22. 22

    多次调用同一方法时取消方法调用

  23. 23

    在C#5中多次异步调用同一方法是否安全?

  24. 24

    如何通过同一方法多次从父组件刷新子组件?

  25. 25

    zsh-是否可以在稍加修改的情况下两次运行同一命令?

  26. 26

    仅在第二条记录存在的情况下,两次连接到同一表

  27. 27

    MySql:在记录不存在的情况下两次加入同一个表

  28. 28

    最好查询一次,然后根据返回的列值组织对象,或者在不同条件下查询两次?

  29. 29

    调用一个函数,该函数需要两次使用不同的闭包的闭包

热门标签

归档