Java教程

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

本文主要是介绍设计模式与选课系统项目分析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

  • 设计模式

  • 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      字符串



 

 

这篇关于设计模式与选课系统项目分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!