MST
星途 面试题库

面试题:Swift中工厂模式的基本实现

请用Swift代码实现一个简单的工厂模式,假设有一个`Shape`协议,包含`draw`方法,有`Circle`和`Rectangle`两个结构体遵循`Shape`协议。要求实现一个`ShapeFactory`类,通过`createShape(type: String)`方法根据传入的字符串("circle"或"rectangle")创建对应的形状实例。
42.1万 热度难度
编程语言Swift

知识考点

AI 面试

面试题答案

一键面试
// 定义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()
}