面试题答案
一键面试// 定义Shape协议
protocol Shape {
func draw()
}
// Circle结构体遵循Shape协议
struct Circle: Shape {
func draw() {
print("绘制圆形")
}
}
// Rectangle结构体遵循Shape协议
struct Rectangle: Shape {
func draw() {
print("绘制矩形")
}
}
// ShapeFactory类
class ShapeFactory {
func createShape(type: String) -> Shape? {
if type.lowercased() == "circle" {
return Circle()
} else if type.lowercased() == "rectangle" {
return Rectangle()
}
return nil
}
}
你可以使用以下方式调用:
let factory = ShapeFactory()
if let circle = factory.createShape(type: "circle") {
circle.draw()
}
if let rectangle = factory.createShape(type: "rectangle") {
rectangle.draw()
}