Python之外观模式
一、介绍
外观模式又叫做门面模式,外观模式的核心在于将复杂的内部子系统封装起来,只向外界提供简单的调用接口。它是一种对象结构型模式。
二、外观模式
假设有一套 考试成绩打分 系统,由三个子系统组成:
- 录入考生信息
- 解析判定答案对错
- 计算分数
# 当对某个考生的试卷进行打分时,首先要录入考生信息,然后对试卷答案进行解析,最后计算出分数 class InputInfo: def run(self): print("录入考生信息") class ParseAnswer: def run(self): print("解析试卷答案") class CalculateScore: def run(self): print("计算分数") # 业务代码 if __name__ == "__main__": info = InputInfo() answer = ParseAnswer() score = CalculateScore() info.run() answer.run() score.run()
上面这样完成我们也是完成了业务需求,但是可以看出来业务逻辑步骤会比较繁琐,耦合度较大。
这时我们就需要将这些逻辑进行封装,即减少了重复代码,也提供了一个简单的对外接口,这就是外观模式。
# 当对某个考生的试卷进行打分时,首先要录入考生信息,然后对试卷答案进行解析,最后计算出分数 class InputInfo: def run(self): print("录入考生信息") class ParseAnswer: def run(self): print("解析试卷答案") class CalculateScore: def run(self): print("计算分数") class AutomaticScoring: """在外观类中封装了对子系统的操作""" def __init__(self): self.info = InputInfo() self.answer = ParseAnswer() self.score = CalculateScore() def auto_run(self): self.info.run() self.answer.run() self.score.run() # 业务代码 if __name__ == "__main__": AutomaticScoring().auto_run()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix