# 行为型模式-责任链模式
from abc import ABCMeta, abstractmethod
class IHandler(metaclass=ABCMeta):
@abstractmethod
def check_permissions(self, request):
pass
class AdminPermission(IHandler):
def check_permissions(self, request):
if request == "管理员":
print("管理员权限验证成功")
return True
else:
return False
class UserPermission(IHandler):
def check_permissions(self, request):
if request == "普通用户":
print("普通用户权限验证成功")
return True
else:
return False
class ZGPermission(IHandler):
def check_permissions(self, request):
if request == "主管":
print("主管权限验证成功")
return True
else:
return False
class Login():
permission_list = []
def check_login(self, request):
# 权限验证流程, 检查普通用户,主管、管理员
a = UserPermission()
self.permission_list.append(a)
b = ZGPermission()
self.permission_list.append(b)
c = AdminPermission()
self.permission_list.append(c)
for i, item in enumerate(self.permission_list):
if item.check_permissions(request):
return True
return False
if __name__ == "__main__":
check = Login()
if not check.check_login("管理员1"):
print("登录失败")
else:
print("登录成功")
![]()