protocol SomeEngine {
func start()
}
// 전기차
class Electronic: SomeEngine {
func start() {
print("찌릿찌릿")
}
}
// 모터차
class Gasoline: SomeEngine {
func start() {
print("부릉부릉")
}
}
class Car {
private let engine: SomeEngine
init(engine: SomeEngine) {
self.engine = engine
}
func start() {
engine.start()
}
}
let electronic = Electronic()
let gasoline = Gasoline()
let carA = Car(engine: electronic)
let carB = Car(engine: gasoline)
carA.start()
carB.start()