装饰器— Swift中的设计模式
装饰器设计模式使我们能够动态地向对象添加功能和行为,而不会影响同一类中其他现有对象的行为。 我们使用继承来扩展类的行为。
零件:
协议 iPhoneX {
func price()-> Double
}
具体组成部分:
IPhoneXsBasic 类 :iPhoneXs {
func price()-> Double {
第 749章
}
}
装饰器:
IPhoneXsDecoreate 类 :iPhoneXs {
私人 var电话:iPhoneXs
初始化 (电话:iPhoneXs){
自我 .phone =电话
}
func price()-> Double {
返回 自身 .phone.price()
}
}
混凝土装饰工:
IphoneXsRam128 类 :iPhoneXsDecoreate {
覆盖 func price()-> Double {
返回 超级 .price()+ 50
}
}
IphoneXsRam256 类 :iPhoneXsDecoreate {
覆盖 func price()-> Double {
返回 超级 .price()+ 150
}
}
iPhoneXsGoldCover 类 :iPhoneXsDecoreate {
覆盖 func price()-> Double {
返回 超级 .price()+ 1000
}
}
用法:
让 myPhone = IPhoneXsBasic()
print(“ $” + String(myPhone.price())) // $ 749
让 mySonPhone = IphoneXsRam128(电话:IPhoneXsBasic())
print(“ $” + String(mySonPhone.price())) //$799.0
让 myWifePhone = iPhoneXsGoldCover(电话:IphoneXsRam256(电话:IPhoneXsBasic()))
print(“ $” + String(myWifePhone.price())) //$1899.0
改善并继续
您可以考虑创建许多具体组件,例如:IphoneXrBasic,IphoneXBasic等。