模板方法
2021-09-08 本文已影响0人
helinyu
定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可重定义该算法的某些特定步骤
多个子类又公共的方法内容,可以将公共部分体育为父类 —— 继承
既然使用了继承,并且肯定这个继承有意义, 就应该要成为子类的模板,所有重复的代码都应该上升到父类去,而不是让每个子类都去重复。
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。
使用模板方法的情况:
1》需要一次性实现算法的不变部分,并将可变的行为留给子类来实现
2》子类的共同行为应该被提取来放到公共类中,以避免代码重复。 现有代码的差别应该不被分类为新的操作。 然后用一个调用这些操作的模板方法来替换这些不同的代码
模板方法会调用5中类型的操作
1》 对具体类或客户端的具体操作
2》对抽象类的具体操作
3》抽象操作
4》工厂方法
5》钩子操作(可选的抽象操作)
Cocoa touch上的使用
UIView 的drawRect 方法
UIViewController 中的很多暴露的接口。