- 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中;
- 模板方法使得子类可以不改变一个算法的通用结构即可重定义该算法的某些特定步骤;
- 封装不变部分、扩展可变部分:提取出公共代码便于维护,行为由父类控制、子类实现;
- 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。
class Register(object): '''用户注册接口'''
def register(self):
pass
def login(self):
pass
def auth(self):
self.register()
self.login()
class RegisterByQQ(Register): '''qq注册'''
def register(self):
print("---用qq注册-----")
def login(self):
print('----用qq登录-----')
class RegisterByWeiChat(Register): '''微信注册'''
def register(self):
print("---用微信注册-----")
def login(self):
print('----用微信登录-----')
if __name__ == "__main__":
register1 = RegisterByQQ()
register1.auth()
register2 = RegisterByWeiChat()
register2.auth()
网友评论