工厂方法:
接受客户端的请求,通过请求负责创建相应的产品对象。
抽象产品角色:是工厂模式所创建对象的父类或是拥有的接口。
具体产品角色:工厂模式所创建的对象都是这个角色的实例。
image.png
由于该APP有很多界面的navigation上需要如上两个“确认”和“取消”按钮,如果每个界面都写代码会浪费大量时间也显得很累赘,故引入工厂方法:
class GeneralFactory: NSObject {
static func addTitleWithTile(target:UIViewController,title1:String="关闭",title2:String = "确认"){
let btn1 = UIButton(frame: CGRectMake(10,20,40,20))
btn1.setTitle(title1, forState: .Normal)
btn1.contentHorizontalAlignment = .Left
btn1.setTitleColor(MAIN_RED, forState: .Normal)
btn1.titleLabel?.font = UIFont(name: MY_FONT, size: 14)
target.view.addSubview(btn1)
let btn2 = UIButton(frame: CGRectMake(SCREEN_WIDTH - 50,20,40,20))
btn2.setTitle(title2, forState: .Normal)
btn2.contentHorizontalAlignment = .Right
btn2.setTitleColor(MAIN_RED, forState: .Normal)
btn2.titleLabel?.font = UIFont(name: MY_FONT, size: 14)
target.view.addSubview(btn2)
}
}
在需要的界面调用方法addTitleWithTile即可,其中target表示该界面:
GeneralFactory.addTitleWithTile(vc, title1: "关闭", title2: "发布")
网友评论