模板模式Ios下如何使用

                                              模板模式的使用        

视图和控制器以及app程序的加载,设计到生命周期的大概就是采用的这种模式

适用范围:某个业务具有固定的一套流程,但是允许有差异性的情况

以Person  每天的活动为列 醒来,睁开眼,洗漱,过完一天的生活,睡觉

发现必要的经历都是醒来,睁开眼,睡觉,洗漱但是每个人过完一天的生活却不一样,睡觉

那么有学生,有公务员,有老师,有农民,有要饭的,碰瓷的

class Person{

var  aname:String = "我"

init(){

self.mustdosomthing()

}

private  func  mustdosomthing(){

wakeup()

zhenyan()

if(cleantest()){

print("\(aname)今天洗漱了的,真是个乖孩子")

}

else{

print("\(self.aname)都不刷牙你太恶心了")

}

livelife()

gosleep()

print("");

}

private func  zhenyan(){

print("睁开眼");

}

private func  gosleep(){

print("我睡觉了");

}

private  func  wakeup(){

print("醒来");

}

func  cleantest()->Bool{

return  true;

}

func  livelife(){

}

}

var  per = Person()

class  student:Person{

override init(){

super.init()

}

override  func  livelife(){

print("\(aname)"+"当然是上一天学咯")

}

override  func  cleantest()->Bool{

return  false;

}

}

var  stu = student()


打印出来是这样的

醒来

睁开眼

人今天洗漱了的,真是个乖孩子

我睡觉了

醒来

睁开眼

学生都不刷牙你太恶心了

学生当然是上一天学咯

我睡觉了

采用这样的设计模式好处也体现了出来了,易于子类扩展,且不影响整个模板的整体流程和算法

关于模板模式在实际项目中如何使用你可以移驾查看在iOS上如何使用模板模式来用于统一管理自定义的异常处理.语言是oc版写的还包括aes+256轮转加密加密对部分字段加而非

https://gitee.com/cendainfo/ios-network.git

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容