Swift:
重构
如何进行:
我们从一个基本的Swift示例开始,其中有一些重复的代码:
func printUserDetails(firstName: String, lastName: String, age: Int) {
print("名字: \(firstName)")
print("姓氏: \(lastName)")
print("年龄: \(age)")
}
func printUserJob(title: String, company: String) {
print("职位: \(title)")
print("公司: \(company)")
}
重构包括创建一个 User
结构体来封装用户属性,并添加一个打印详细信息的方法:
struct User {
let firstName: String
let lastName: String
let age: Int
let jobTitle: String
let company: String
func printDetails() {
print("名字: \(firstName)")
print("姓氏: \(lastName)")
print("年龄: \(age)")
print("职位: \(jobTitle)")
print("公司: \(company)")
}
}
let user = User(firstName: "John", lastName: "Doe", age: 30, jobTitle: "软件开发者", company: "技术解决方案")
user.printDetails()
样本输出:
名字: John
姓氏: Doe
年龄: 30
职位: 软件开发者
公司: 技术解决方案
深入探讨
重构的根源可以追溯到软件工程的早期,但这个术语是在1990年代末通过Martin Fowler的开创性书籍《重构:改善既有代码的设计》而普及的。该书阐述了代码应该继续通过小步骤清理,而不是等待单独的阶段这一原则。
手动重构的替代方案包括自动化工具和IDE(集成开发环境),它们可以帮助检测重复代码、建议简化以及自动生成代码的部分。对于Swift开发,Xcode提供了各种重构工具,如重命名和提取方法功能,这些工具可以减少过程中的人为错误潜在性。
实施重构时,重要的是要有一个稳固的测试套件。测试充当一个安全网,确保你所做的改变不会引入错误。这是至关重要的,因为重构的主要目标是在不影响外部行为的情况下更改内部结构。