将调用接口统一化,从而定义一个算法的骨架,即定义元方法集,而将一些步骤的执行延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤,也就是说,在父类中定义一个完成该事情的总方法。每个步骤的具体实现,由子类完成,之后子类再按照完成事件需要去调用其每个步骤的实现方法。
# -*- coding: utf-8 -*-
class Register(object):
"""用户注册接口"""
def register(self):
pass
def login(self):
pass
"""认证的方法集"""
def auth(self):
self.register()
self.login()
class RegisterByMail(Register):
"""邮箱注册"""
def register(self):
print("---用邮箱注册-----")
def login(self):
print("----用邮箱登录-----")
class RegisterByPhone(Register):
"""手机号注册"""
def register(self):
print("---用手机号注册-----")
def login(self):
print("----用手机号登录-----")
if __name__ == "__main__":
register1 = RegisterByMail()
register1.auth()
register2 = RegisterByPhone()
register2.auth()