单例模式补充
1 # 方式一 2 class Singleton: 3 __instance = None 4 5 @classmethod 6 def singleton(cls): 7 if not cls.__instance: 8 obj = cls() 9 cls.__instance = obj 10 return cls.__instance 11 12 13 # 方式二 14 class Singleton: 15 __instance = None 16 17 def __new__(cls, *args, **kwargs): 18 if not cls.__instance: 19 cls.__instance = object.__new__(cls) 20 return cls.__instance 21 22 23 obj1 = Singleton() 24 obj2 = Singleton() 25 obj3 = Singleton() 26 print(obj1) 27 print(obj2) 28 print(obj3)
一、软件开发架构
1.C/S 架构
Client(客户端)— Server(服务端)
程序需要安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大
优点:
软件使用稳定;节省网络资源
缺点:
安装麻烦,用户体验差;软件的每次更新,用户都需要重新下载或更新版本
2.B/S架构
Browser(浏览器,本质是也是一个客户端)— Server(服务端)
只需要在浏览器上通过HTTP请求服务服务器端相关的资源(网页资源),客户端浏览器就能进行增删改查
优点:
软件的使用方便;无需跟着软件的更新去下载
缺点:
如果网络不稳定,软件的使用就不稳定
ps:目前比较流行的架构是B/S架构,因为其用户体验高
客户端与服务端:
服务端就是24小时不断提供服务
客户端就是想要找服务时,就去访问服务端
二、互联网协议(OSI七层协议)
协议是计算机与计算机之间沟通的介质
1.物理层:
物理链接介质,传递电信号
2.数据链路层
我要知道数据是什么?数据是给谁的?
基于以太网的通信方式(以太网协议):
⑴规定一套分组的方式:获取电信号真实数据,电信号是一个数据包
head:18个字节(6个表示发送者-6个表示接受者-6个表示数据类型)
data:电信号具体的数据
⑵网卡:电脑插入网线的地方
每块网卡都有一串世界上独一无二的数字,是12位的16进制数字,称为“mac地址”(前6位:产商号-后6位:流水号)
mac地址作用:标识全世界上一台独一无二的计算机
以太网工作方式:单播和广播
缺点:广播风暴;只能在局域网内实现通信,无法跨局域实现通信
小结:mac地址:标识全世界上一台独一无二的计算机
3.网络层
实现全世界某一台计算机之间的通信
基于IP地址的通信方式(ip协议):
由点分十进制的数字组成,最小范围:0.0.0.0,最大范围255.255.255.255
ip版本:IPV4、IPV6
ip的作用:
用于表示全世界某一台计算机的位置,局域网的位置
小结:IP地址+mac地址:标识全世界某一个局域网内的,某一台计算机
4.传输层
主要是软件与软件之间进行通信
基于tcp/udp的通信方式(tcp/udp协议):
tcp与udp都是基于端口实现通信的
port端口:用于标识计算机中某个独一无二的软件
小结:IP地址+mac地址+port端口:标识全世界某一个局域网内某一台计算机上的某一个软件
5.应用层
由自定义协议(http,ftp)