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

如何提升网站的权重怎么下载网站动态图片

如何提升网站的权重,怎么下载网站动态图片,网站制作(信科网络),小型生鲜超市店面设计文章目录 前言一、单例模式二、单例模式实现方式三、单例模式示例四、单例模式在Django框架的应用 前言 GOF设计模式分三大类#xff1a; 创建型模式#xff1a;关注对象的创建过程#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模… 文章目录 前言一、单例模式二、单例模式实现方式三、单例模式示例四、单例模式在Django框架的应用 前言 GOF设计模式分三大类 创建型模式关注对象的创建过程包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式关注类和对象之间的组合包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。行为型模式关注对象之间的交互包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。 一、单例模式 单例模式Singleton Pattern 定义确保某一个类只有一个实例而且自行实例化并向整个系统提供这个实例这个类称为单例类它提供全局访问的方法。 解决问题如何确保系统中一个类只能有一个实例 使用场景 当系统中需要一个类来控制资源的访问确保资源不会因为多个实例的创建而产生冲突时。当整个系统的配置信息存放在一个对象中并由一个实例来进行管理时。当需要限制一个类的实例只能有一个比如数据库连接池、线程池、缓存等。 优点 单例模式提供了对唯一实例的受控访问。也可以特定数量的实例。由于在系统内存中只存在一个对象因此可以节约系统资源。 缺点 单例类较难扩展单例类的职责过重如果运行环境提供了自动垃圾回收技术可能被回收销毁 二、单例模式实现方式 方式一懒汉式线程不安全 使用类变量和类方法实现单例模式。get_instance()类方法负责创建和返回类的唯一实例。在第一次调用get_instance()方法时实例化在类加载时并不自行实例化这种技术又称为延迟加载Lazy Load技术即需要的时候再加载实例。在多线程环境下可能会有问题 class TaskManager:tm: TaskManager Nonedef __init__(self):passclassmethoddef get_instance(cls):if cls.tm is None:cls.tm TaskManager() # 自行实例化return cls.tm# 使用单例 task_manager TaskManager.get_instance()方寸二懒汉式线程安全 上述方式一可能会遇到线程安全问题。即如果有两个线程同时检查到 cls.tm 为 None 并尝试创建一个新的 TaskManager 实例这就会导致创建了多个实例。还需要待进一步确认。因为在Python中由于全局解释器锁Global Interpreter LockGIL的存在即使是多线程程序在任何给定时刻也只能有一个线程执行Python字节码。增加线程锁定保证线程安装但会影响性能 import threadingclass TaskManager:tm: TaskManager Nonelock threading.Lock()def __init__(self):passclassmethoddef get_instance(cls):with cls.lock: # 进行线程锁定if cls.tm is None:cls.tm TaskManager()return cls.tm# 使用单例 task_manager TaskManager.get_instance()方式三Python模块级别的变量 使用模块实现单例模式。Python的模块本身就是单例的因为模块在第一次导入时会被加载并创建之后的导入操作只是引用第一次创建的模块对象。config是一个模块级别的变量它在模块第一次被导入时创建之后的导入操作都会使用这个已经创建的实例。 # 模块 my_config.py class Config:def __init__(self):passconfig Config()# 在其他文件中使用 from my_config import config推荐方式三 方式二 方式一 三、单例模式示例 使用模块实现单例模式 将负载均衡器LoadBalancer设计为单例类其中包含一个存储服务器信息的集合每次随机选择一台服务器来响应客户端的请求 # 模块 balancer.py import randomclass LoadBalancer:def __init__(self):self.server_list []def add_server(self, server_name: str):self.server_list.append(server_name)def remove_server(self, server_name: str):if server_name in self.server_list:self.server_list.remove(server_name)def get_server(self):return random.choice(self.server_list)load_balancer LoadBalancer()在其它文件中使用单例客户端测试代码 from balancer import load_balancerload_balancer.add_server(server 1) load_balancer.add_server(server 2) load_balancer.add_server(server 3) load_balancer.add_server(server 4)for i in range(10):server load_balancer.get_server()print(f分发请求至服务器{server})### 输出结果 分发请求至服务器server 4 分发请求至服务器server 3 分发请求至服务器server 2 分发请求至服务器server 3 分发请求至服务器server 1四、单例模式在Django框架的应用 配置对象Settings Django的配置对象是全局的整个项目只有一个settings实例这个实例包含了项目的所有配置信息。Django启动时加载配置文件并将其作为一个单例供整个系统使用。 # 模块 django/conf/__init__.py ... settings LazySettings()# 在其他文件中使用 from django.conf import settingsif settings.DEBUG:# Do something...您正在阅读的是《设计模式Python版》专栏关注不迷路~
http://www.dnsts.com.cn/news/250094.html

相关文章:

  • 做360网站优化排百度收录技巧
  • 推广展示类网站有哪些上海网站建设润滋
  • 网站维护主要做什么成都官网优化多少钱
  • 洛阳做网站的公司有哪些做网站是互联网开发吗
  • 常州高端网站建设做招标应该关注什么网站
  • 温州做网店的网站怎样重启网站服务器
  • 网站设计 工作百度上广告怎么搞上去的
  • 毕节城乡建设厅网站互联网保险模式
  • 网站无法连接mysqlseo 网站推广
  • 班级网站设计论文网站开发美工总结
  • 广州天与地网站建设大兴西红门网站建设
  • 盐城网站建设找宇要做好网络营销首先要
  • 网站建设及优化 赣icp网站开发财务费用
  • 海珠网站建设营销型高端网站建设
  • app产品网站模板wordpress编辑器增强代码
  • 设计素材网站上的素材可以商用吗湖南常德师范学校
  • 2019年建设什么网站好购物类网站的设计特点
  • 器材管理网站开发服务称赞的建筑机电网
  • 网站配色设计做网站服务器需要系统
  • 专门做茶叶的网站贵州省城乡和住房建设厅官方网站
  • 专注于网络推广及网站建设国内做网站哪个好
  • 素材图库网站源码百度惠生活推广怎么收费
  • 网站后台界面设计北京互联网公司建网站
  • html表格代码网站运行速度优化
  • 网站建设表格代码免费网页app一键生成软件
  • 成都php网站制作程序员沈阳工程建设监理咨询
  • 深圳建一个网站多少钱网页翻译不见了
  • 上海微信网站佛山关键词优化平台
  • 南宁网站建设价格wordpress资讯模板
  • 给网站做路由重庆市场调研公司