关于工厂模式的说明,请移步至https://blog.csdn.net/kicinio/article/details/109672005
代码如下:
import Foundation
protocol Flight {
func fire() -> Void
}
class J10: Flight{
func fire() {
print("J10 Fire.")
}
}
class J11: Flight{
func fire(){
print("J11 Fire.")
}
}
class J20: Flight{
func fire(){
print("J20 Fire.")
}
}
class F16: Flight{
func fire(){
print("F16 Fire.")
}
}
class F22: Flight{
func fire(){
print("F22 Fire.")
}
}
class F35: Flight{
func fire(){
print("F35 Fire.")
}
}
class FlightFactory{
func getFlight(flightType: String) -> Flight{
switch flightType {
case "J10":
return J10();
case "J11":
return J11();
case "J20":
return J20();
case "F16":
return F16();
case "F22":
return F22();
case "F35":
return F35();
default:
return nil;
}
}
}
var flightFactory: FlightFactory = FlightFactory();
var j10: Flight = flightFactory.getFlight(flightType: "J10");
j10.fire();
var j11: Flight = flightFactory.getFlight(flightType: "J11");
j11.fire();
var j20: Flight = flightFactory.getFlight(flightType: "J20");
j20.fire();
var f16: Flight = flightFactory.getFlight(flightType: "F16");
f16.fire();
var f22: Flight = flightFactory.getFlight(flightType: "F22");
f22.fire();
var f35: Flight = flightFactory.getFlight(flightType: "F35");
f35.fire();