ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设计模式与选课系统项目分析

2022-04-13 00:32:21  阅读:128  来源: 互联网

标签:__ obj name 选课 创建 self 项目分析 课程 设计模式


 

  • 设计模式

  • pickle模块

  • 选课系统项目分析

 

 

设计模式之单例模式

在IT行业中设计模式总共有23种 可以分为三大类
1.创建型
   2.结构型
   3.行为型
 
"""设计模式时前辈们发明的经过反复验证用于解决固定问题的固定套路"""

设计模式之单例模式(23种之一)
单例模式的意思是一个类只能产生一个对象 用于节省资源
 应用场景:
有一个类中有很多非常牛逼的绑定给对象的方法
   我们需要在很多地方使用它 那么不同的程序员来用不知道有没有产生对象
   所以自己会创建一个新对象 如此往复则会造成资源的浪费
如何实现:
   我们需要在类实例化对象的时候进行干涉 : 元类
单例模式:
class Single(type):
     new_obj = None
     def __call__(self, *args, **kwargs):
         if not self.new_obj:
             obj = super().__call__(*args, **kwargs)
             self.new_obj = obj
             return self.new_obj
         return self.new_obj
   class MyClass(metaclass=Single):
       def __init__(self, name):
           self.name = name
   obj1 = MyClass('jason')
   obj2 = MyClass('tony')
   print(id(obj1), id(obj2))
   print(obj1.__dict__,obj2.__dict__)
   '''单例的实现方式不固定 有很多种'''

 

pickle模块

该模块只支持python,兼容性很差,但是该模块可以将对象保存到文件中,并且取出来之后还可以使用对象的功能

import pickle

class MyClass(object):
   school = '机车大学'
   def __init__(self, name):
       self.name = name
   def choose_course(self):
       print('%s正在选课'%self.name)
obj = MyClass('faker')
print(obj.school)
obj.choose_course()
# 将数据以二进制保存到文件
# pickle可以
# with open(r'%s'%obj.name,'wb') as f:
#     pickle.dump(obj, f)

# 读取文件
with open(r'jason','rb') as f:
   data = pickle.load(f)
print(data)
print(data.name)  # faker
print(data.school)  # 机车大学

 

选课系统项目分析

目的:为了练习面向对象编程
项目分析:
选课系统:学校、学生、课程、老师
   要求:
   1.创建北京、上海2所学校
   2.创建Java,python,go 3门课程,Java\python 在北京开,go在上海开
   3.课程包含,周期,价格,通过学校创建课程
   4.通过学校创建班级,班级关联课程、老师
   5.创建学生时,选择学校,关联班级
   6.创建老师角色时要关联学校
   7.提供三个角色接口
  7.1 学员视图,可以登录,注册,选择学校,选择课程,查看成绩
       7.2 老师试图,登录,选择学校,选择课程,查看课程下学院列表,修改所管理的学生成绩
       7.3 管理试图,登录,注册,创建老师,创建班级,创建课程,创建学校
     
   8.上面的操作产生的数据都通过pickle序列化保存到文件里
 
架构设计
三层架构
  学生功能
       老师功能
       管理员功能
      model.py
           存储所有角色类
           

项目功能分析

管理员视图
注册
登录
创建学校
创建课程
创建讲师
 
讲师视图
登录
查看教授课程
选择教授课程
查看课程学生
评判学生分数

学员视图
注册
登录
选择学校
选择课程
查看分数

数据保存剖析

类产生的对象在保存的时候
自动创建一个类名一样的文件名 将数据保存到文件夹内
   
# 如何通过对象获取类对应的字符串名称
obj = Admin('faker',666)
# 固定方法
print(obj.__class__)  # <class '__main__.Admin'> 类名
print(obj.__class__.__name__)  # Admin 字符串



 

 

标签:__,obj,name,选课,创建,self,项目分析,课程,设计模式
来源: https://www.cnblogs.com/qinyanghua/p/16138361.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有