1、设计模式:
对程序做整体得规划设计,这样做是为了更好的实现功能,使代码的可扩展性更好
有27种常见的设计模式。
流行的设计模式参考书:GoF设计模式、大话设计模式
设计模式是为了更好的实现模块间的解耦,便于程序的扩展
2、基础设计模式-单利模式:只有一个示例
实现方法:静态方法+静态字段
不适用的场景:每个对象封装了不同得参数
适用场景:当所有实例中封装内容相同时
eg:
#!/usr/bin/envpython #-*-coding:utf-8-*- classConnectionPool: __instance=None @staticmethod defget_instance(): ifConnectionPool.__instance: returnConnectionPool.__instance else: ConnectionPool.__instance=ConnectionPool() returnConnectionPool.__instance def__init__(self): self.ip='10.10.8.12' self.port=3306 self.pwd='query' self.username='query' #去连接 self.conn_list=[1,2,3,4,5,6,7,8,9,10] defget_connection(self): #获取连接 importrandom r=random.randrange(1,11) returnr #foriinrange(10): #pool=ConnectionPool.get_connection() #print("去连接池",pool,"中获取一个连接") #conn=pool.get_connection() #print('获取到的连接是:',conn)
3、数据库连接池:用来hung住数据库的若干连接,当程序连接数据库的时候直接拿走连接就可以很快的连接上数据库。
程序对数据操作不耗时,连接数据库的过程非常耗时。
4、py包 在2.7版本下有__init__.py文就则叫包,若没有怎不能导入其中的类
5、编程的开放封闭原则:配置文件对用户开放,对程序封闭
6、程序文件分类:
练习题1:学生选课系统
管理员:
创建老师:姓名、性别、年龄、资产
创建课程:课程名称、上课时间、课时费、关联老师
使用pickle保持文件
学生:
学生:用户名、密码、性别、年龄、选课列表[]、上课记录{}
1、列举所有课程
2、选择课程
3、学生上课
4、ret = 课程。work() 获取课程的返回;资产+=课时费
https://files.cnblogs.com/files/workherd/day17.zip