iOS实战【好书】之工厂方法

2016-06-28  本文已影响29人  xiongsirui

工厂方法:

接受客户端的请求,通过请求负责创建相应的产品对象。
抽象产品角色:是工厂模式所创建对象的父类或是拥有的接口。
具体产品角色:工厂模式所创建的对象都是这个角色的实例。


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: "发布")
上一篇下一篇

猜你喜欢

热点阅读