这里介绍一下设计模式中的装饰器模式在iOS中的实现。
一、用来做什么的?
装饰器模式[Decorator Pattern]适用于在不改变原来类的前提下,增加实现功能(不使用继承)。比如有一个Circle类有画圆的方法,现在要在画一个带边框颜色的圆。
二、代码上如何实现?
// 画圆
@objcMembers
class Circle: NSObject {
func draw() {
print("画圆的操作完成!");
}
}
@objcMembers
class Decorator: NSObject {
var decoratedCircle : Circle?
init(decoratedCircle : Circle?) {
self.decoratedCircle = decoratedCircle
}
func draw() {
decoratedCircle?.draw()
addRedBorder()
}
func addRedBorder() {
print("Border Color: Red")
}
}
网友评论