gpt4 book ai didi

swift - 我需要帮助重构代码以符合单一职责原则

转载 作者:搜寻专家 更新时间:2023-11-01 07:28:25 25 4
gpt4 key购买 nike

我目前正在尝试通过阅读名为 Ruby 中的实用面向对象设计 的书来理解 SOLID 原则。第一个原则是单一职责,我理解这个概念的方式是一个类/方法应该只有一个职责或改变的原因。

在下面的代码中,我有一个计算类,它负责 (4) 四种不同的操作,addsubtractmultiplydivide,这对我来说不符合单一职责理论。

有人可以如此友善地重构以下类以使其遵守单一职责吗?

我知道这可能是一个非常自以为是的话题,但我真的需要更好地理解这个概念。

仅供引用 - 为简单起见,我只使用整数,我知道它不是除法和减法的理想选择。

class Calculate{

let num1:Int
let num2:Int

init(firstNum:Int, secondNum:Int){
num1 = firstNum
num2 = secondNum
}

func add()->Int{

let total = num1 + num2

return total
}

func subtract()->Int{

let total = num1 - num2

return total
}

func multiply()->Int{

let total = num1 + num2

return total
}

func divide()->Int{

let total = num1 / num2

return total
}

}


let operation = Calculate(firstNum:5 , secondNum:5)
print(operation.divide())

最佳答案

单一职责意味着类应该只有一个逻辑功能。

所以如果你有计算器,那是完全可以的,它可以计算。 “单一”并不意味着“单一方法”。计算器可以求和、除法等等,对吗?是的,这正是 Calculator 类方法应该做的。

例如,如果您想要连接两个计算器类,添加方法“connectToAnotherCalculator”是违反 SRP 的。正确的方法是创建连接器类,它应该处理计算器之间的通信。

关于swift - 我需要帮助重构代码以符合单一职责原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com