当前位置: 首页 > wzjs >正文

做静态网站步骤建设银行网站e动终端

做静态网站步骤,建设银行网站e动终端,网站开发协议模版,网页设计图片的边框怎么做🧠 模块方法模式(Module Method Pattern) 模块方法模式是一种结构型设计模式,它将复杂的操作分解成一系列相对简单、独立且单一职责的模块。每个模块负责完成一种具体的操作,其他模块或系统可以通过调用这些模块的公开…

🧠 模块方法模式(Module Method Pattern)

模块方法模式是一种结构型设计模式,它将复杂的操作分解成一系列相对简单、独立且单一职责的模块。每个模块负责完成一种具体的操作,其他模块或系统可以通过调用这些模块的公开方法来执行特定任务。

这种模式通常用于解决代码复杂性过高的问题,通过将系统分解为多个模块,使每个模块有清晰的职责和功能。


🎯 为什么需要模块方法模式?

  1. 降低复杂度:系统过于复杂时,模块方法模式可以将系统划分为多个模块,每个模块负责具体的业务逻辑。这样可以降低单个模块的复杂度,便于维护。
  2. 增强模块化:将不同功能的模块独立出来,模块之间通过公开方法进行交互。每个模块的实现相对独立,可以提升系统的可扩展性。
  3. 提高可维护性:各个模块具有明确的责任,系统出现问题时,可以只关注出问题的模块,而不需要了解整个系统的实现细节。
  4. 支持代码重用:独立模块可以在其他系统中复用,只需调用模块方法即可。

优缺点分析

优点缺点
模块化设计使得系统容易扩展当系统中模块较多时,管理和维护可能变得复杂
代码的可读性和可维护性较高模块之间的接口可能会产生一定的耦合
便于测试每个模块的功能如果模块过于独立,可能导致功能重复或冗余
便于集成第三方库系统启动时可能会加载过多的模块,影响性能

🧩 Python 示例:学生管理系统

我们将通过一个学生管理系统来示例模块方法模式。系统中有三个主要功能模块:

  1. 学生信息模块:管理学生的信息(如姓名、年龄等)。
  2. 成绩模块:管理学生的成绩。
  3. 课程模块:管理课程信息。

每个模块都有自己的方法,其他模块或系统通过调用这些方法来执行相应的任务。

🎯 1️⃣ 学生信息模块(Student Module)

class StudentModule:def __init__(self):self.students = {}def add_student(self, student_id: int, name: str, age: int):"""添加学生信息"""self.students[student_id] = {'name': name, 'age': age}def get_student_info(self, student_id: int):"""获取学生信息"""return self.students.get(student_id, "Student not found")
  • add_student():添加学生信息。
  • get_student_info():获取学生信息。

🎯 2️⃣ 成绩模块(Grade Module)

class GradeModule:def __init__(self):self.grades = {}def add_grade(self, student_id: int, course_name: str, grade: float):"""为学生添加成绩"""if student_id not in self.grades:self.grades[student_id] = {}self.grades[student_id][course_name] = gradedef get_grades(self, student_id: int):"""获取学生的成绩"""return self.grades.get(student_id, "Grades not found")
  • add_grade():为学生添加成绩。
  • get_grades():获取学生成绩。

🎯 3️⃣ 课程模块(Course Module)

class CourseModule:def __init__(self):self.courses = {}def add_course(self, course_id: int, course_name: str):"""添加课程"""self.courses[course_id] = course_namedef get_course_info(self, course_id: int):"""获取课程信息"""return self.courses.get(course_id, "Course not found")
  • add_course():添加课程信息。
  • get_course_info():获取课程信息。

🎯 4️⃣ 上下文类(SchoolSystem)

上下文类将这些独立的模块整合在一起,提供一个接口,方便外部代码调用每个模块的功能。

class SchoolSystem:def __init__(self):self.student_module = StudentModule()self.grade_module = GradeModule()self.course_module = CourseModule()def add_student(self, student_id: int, name: str, age: int):self.student_module.add_student(student_id, name, age)def get_student_info(self, student_id: int):return self.student_module.get_student_info(student_id)def add_grade(self, student_id: int, course_name: str, grade: float):self.grade_module.add_grade(student_id, course_name, grade)def get_grades(self, student_id: int):return self.grade_module.get_grades(student_id)def add_course(self, course_id: int, course_name: str):self.course_module.add_course(course_id, course_name)def get_course_info(self, course_id: int):return self.course_module.get_course_info(course_id)
  • SchoolSystem 类整合了所有的功能模块。外部调用 SchoolSystem 的方法时,实际上是通过它来调用各个模块的方法。

🎯 5️⃣ 客户端代码:使用学校系统

# 创建学校系统对象
school_system = SchoolSystem()# 添加学生信息
school_system.add_student(1, "Alice", 20)
school_system.add_student(2, "Bob", 22)# 添加课程信息
school_system.add_course(101, "Math")
school_system.add_course(102, "History")# 添加成绩信息
school_system.add_grade(1, "Math", 90)
school_system.add_grade(1, "History", 85)
school_system.add_grade(2, "Math", 75)# 获取学生信息
print(school_system.get_student_info(1))  # 获取Alice的信息# 获取学生成绩
print(school_system.get_grades(1))  # 获取Alice的成绩
print(school_system.get_grades(2))  # 获取Bob的成绩# 获取课程信息
print(school_system.get_course_info(101))  # 获取Math课程信息

输出结果

{'name': 'Alice', 'age': 20}
{'Math': 90, 'History': 85}
{'Math': 75}
Math

🧭 类图(Mermaid)

管理
管理
管理
StudentModule
+add_student(student_id: int, name: str, age: int)
+get_student_info(student_id: int)
GradeModule
+add_grade(student_id: int, course_name: str, grade: float)
+get_grades(student_id: int)
CourseModule
+add_course(course_id: int, course_name: str)
+get_course_info(course_id: int)
SchoolSystem
+add_student(student_id: int, name: str, age: int)
+get_student_info(student_id: int)
+add_grade(student_id: int, course_name: str, grade: float)
+get_grades(student_id: int)
+add_course(course_id: int, course_name: str)
+get_course_info(course_id: int)

🧭 流程图(Mermaid)

User SchoolSystem StudentModule GradeModule CourseModule add_student(1, "Alice", 20) add_student(1, "Alice", 20) add_course(101, "Math") add_course(101, "Math") add_grade(1, "Math", 90) add_grade(1, "Math", 90) get_student_info(1) get_student_info(1) {"name": "Alice", "age": 20} get_grades(1) get_grades(1) {"Math": 90} User SchoolSystem StudentModule GradeModule CourseModule

🧠 应用场景总结

场景示例
功能模块化系统中需要拆分为多个相互独立的功能模块,各模块之间通过接口互相协作
大型应用大型系统,功能多且复杂,模块化有助于解耦和分工
可扩展性强需要随时添加新的功能模块时(如增加新的支付方式、报告类型等)

总结口诀

模块方法模式
✅ 将系统中的不同功能封装为模块,每个模块具有独立的职责。通过调用模块的公开方法来完成相应的操作,提升系统的可扩展性和可维护性。


如果你对这个模式或代码有疑问,或想了解更复杂的用例,随时告诉我!


文章转载自:

http://hpo0SYGp.rgxcd.cn
http://SPejU7vD.rgxcd.cn
http://eQHzdQuE.rgxcd.cn
http://gOoKXrcj.rgxcd.cn
http://GB1Tq9PB.rgxcd.cn
http://vb9pZ3dw.rgxcd.cn
http://WWE1sEbh.rgxcd.cn
http://Z8XWlGpN.rgxcd.cn
http://JbyKgTar.rgxcd.cn
http://fncKN3pQ.rgxcd.cn
http://ttxid2wG.rgxcd.cn
http://R9nZ5srQ.rgxcd.cn
http://8FCesOCm.rgxcd.cn
http://2SVipEpB.rgxcd.cn
http://gpLU0eSD.rgxcd.cn
http://rqwrbkC4.rgxcd.cn
http://Q1B0Uf6Y.rgxcd.cn
http://xgNsVYT6.rgxcd.cn
http://wzSOI36L.rgxcd.cn
http://EiY43gX1.rgxcd.cn
http://pv1pyru4.rgxcd.cn
http://2lvesr6P.rgxcd.cn
http://CzeMfteW.rgxcd.cn
http://G6LAU1K7.rgxcd.cn
http://bU50ovuI.rgxcd.cn
http://PS6tqjTL.rgxcd.cn
http://QmZNdUtV.rgxcd.cn
http://4JHsueA2.rgxcd.cn
http://Ek7tpej4.rgxcd.cn
http://6o9X9mVw.rgxcd.cn
http://www.dtcms.com/wzjs/773759.html

相关文章:

  • 著名网站用什么语言做后台急速浏览器打开新网站
  • 企业网站首页设计重庆网站制作服务
  • 公司网站建设计入科目烟台网络科技有限公司排名
  • 北京网站建设公司完美湖南岚鸿首 选页面设计层级一般控制
  • 朝阳做网站哪家公司好wordpress修改发布页面插件
  • 自助建站源码php现在最火的推广平台有哪些
  • 网站制作报价图片欣赏wordpress插件连不上
  • 做微信公众号的网站外贸网站建设步骤
  • vs和sql怎么做网站网站开发实用技术 代码
  • 电子商务网站建设的规划和实施怎样制作网站教程哪家好
  • 枣庄建设局网站天猫入驻
  • 网站建设方法wordpress 登陆不跳转
  • 网站开发有哪些服务器做网站三大主流框架
  • 河源正规网站建设价格泉州微信网站建设
  • 黄山网站建设推荐北京网站设计制作关键词
  • 房产网站建设方案论文网站建设的基本流程包括
  • 支付网站搭建化妆品做网站流程
  • 网站建设导航栏变化网站权重是什么意思
  • 做企业展示网站个人网站备案通过后
  • 手机wap网站建站系统求一个手机能看的网站
  • 网站调用优酷视频去除广告企业品牌宣传片制作
  • 淘宝客单页网站程序wordpress标签不输出文章
  • 怎样增加网站权重外贸网络营销平台
  • 蓝色清爽网站上海市中小企业服务中心
  • 网站建设交互效果网站资源建设
  • 岳阳网站建设开发成都新站软件快速排名
  • 免费seo排名网站平面设计上班都干啥
  • 如何免费搭建网站青海省wap网站建设公司
  • 旅游建设网站目的及功能定位ps为什么做不了视频网站
  • 惠州市网站制作有限公司门户网站怎么做才好看