首页 > 其他分享 >学习高校课程-软件设计模式-享元模式和代理模式(lec8)

学习高校课程-软件设计模式-享元模式和代理模式(lec8)

时间:2024-10-31 19:09:58浏览次数:1  
标签:享元 对象 object 代理 模式 state proxy lec8

原文链接

Flyweight: Problem

Each particle, such as a bullet, a missile or a piece of shrapnel was represented by a separate object containing plenty of data. At some point, when the carnage on a player’s screen reached its climax, newly created particles no longer fit into the remaining RAM, so the program crashed
每个粒子,例如子弹、导弹或弹片,都由包含大量数据的单独对象表示。在某个时刻,当玩家屏幕上的屠杀达到高潮时,新创建的粒子不再适合剩余的 RAM,因此程序崩溃了。

Flyweight: Solution

Problem analysis
– Some fields consume more memory than others, and store almost identical data
– 某些字段比其他字段消耗更多内存,并且存储几乎相同的数据
– Other parts are unique to each instance, and the values change over time
– 其他部分对于每个实例都是唯一的,并且值随时间变化
– Intrinsic state and extrinsic state
– 内在状态和外在状态

  • Stop storing the extrinsic state inside the object
    停止在对象内部存储外部状态
  • Only intrinsic state stays within the object, for supporting reuse
    只有内在状态保留在对象内,以支持重用

Proxy: Problem and Solution

A massive object consuming a vast amount of resources, needed from time to time, but not always
消耗大量资源的大型对象,有时需要,但并不总是需要

The Proxy pattern suggests that you create a new proxy class with the same interface as an original service object. Then you update your app so that it passes the proxy object to all of the original object’s clients. Upon receiving a request from a client, the proxy creates a real service object and delegates all the work to it.
代理模式建议您创建一个新的代理类,其接口与原始服务对象相同。然后更新您的应用程序,以便将代理对象传递给所有原始对象的客户端。在收到来自客户端的请求后,代理创建一个真正的服务对象并将所有工作委托给它。

标签:享元,对象,object,代理,模式,state,proxy,lec8
From: https://www.cnblogs.com/Mephostopheles/p/18517800

相关文章

  • Python——石头剪刀布(附源码+多模式二改优化版)
    编程初学者通常会从简单的项目开始,以建立基础并增强信心。石头剪刀布游戏是一个很好的起点,因为它涉及到基本的逻辑判断、用户输入处理和随机数生成。本文将详细介绍如何使用Python编写一个石头剪刀布游戏,并提供完整的代码和解释。目录一、游戏介绍二、基本代码解析与实现......
  • Flink On Yarn运行模式:会话模式部署、单作业模式部署、应用模式部署
    YARN上部署的过程是:客户端把Flink应用提交给Yarn的ResourceManager,Yarn的ResourceManager会向Yarn的NodeManager申请容器。在这些容器上,Flink会部署JobManager和TaskManager的实例,从而启动集群。Flink会根据运行在JobManger上的作业所需要的Slot数量动态分配TaskManager资......
  • vue3 类组件装饰器模式配置
    2024年10月31日vue3支持装饰器模式插件借助插件vue-facing-decorator实现类组件装饰器转换npminstall--save-devvue-facing-decorator@rollup/plugin-babel@babel/plugin-proposal-decorators@babel/plugin-proposal-class-propertiesvite.config.ts配置//第一种支......
  • AP5126 是一款 PWM 工作模式,高效率、外围简单、内置功率管,适用于 12-80V 输入的高精
    高性能摩托车灯降压恒流ic全亮/半亮/循环模式短路保护AP5126产品描述AP5126是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-80V输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.2A。AP5126可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/......
  • AP5127 是一款 PWM 工作模式,高效率、外围简单、内置功率管,适用于 12-100V 输入的高精
    产品描述AP5127是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-100V输入的高精度降压LED恒流驱动芯片。输出最大功率可达25W,最大电流2.5A。AP5127可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/循环模式。AP5127工作频率固定在140KHZ,同时内置抖频电路,......
  • AP5216 是一款 PWM工作模式, 高效率、外围简单、内置功率管,适用于5V~100V输入的高精度
    产品描述AP5216是一款PWM工作模式,高效率、外围简单、内置功率管,适用于5V~100V输入的高精度降压LED恒流驱动芯片。输出最大功率可达9W,最大电流1.0A。AP5216可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮模式。AP5216工作频率固定在130KHZ,同时内置抖频电路,可以降低......
  • 一款连续电感电流导通模式的降压恒流源
    AP5165是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED输入电压范围从6V到30V,输出电流可调,最大可达1.2A。根据不同的输入电压和外部器件,AP5165可以驱动高达数十瓦的LED。AP5165内置功率开关,采用高端电流采样设置LED平均电流,通过DIM引脚可以接受模拟......
  • 学习高校课程-软件设计模式-组合模式、装饰器模式和外观模式(lec7)
    原文链接Composite:ProblemUsingtheCompositepatternmakessenseonlywhenthecoremodelofyourappcanberepresentedasatree.仅当应用程序的核心模型可以表示为树时,使用复合模式才有意义。Forexample,imaginethatyouhavetwotypesofobjects:Products......
  • 【云原生】云原生后端:最佳实践与设计模式
    这里写目录标题引言一、云原生的核心概念1.1云原生定义1.2关键特性1.3云原生vs.传统架构二、云原生最佳实践2.1微服务架构2.2采用容器化2.3持续集成与持续交付(CI/CD)2.4API驱动设计2.5服务发现与负载均衡三、常见设计模式3.1服务拆分模式3.2事件驱动架构3.......
  • 456. 132 模式 Golang实现
    题目描述:给你一个整数数组nums,数组中共有n个整数。132模式的子序列由三个整数nums[i]、nums[j]和nums[k]组成,并同时满足:i<j<k和nums[i]<nums[k]<nums[j]。如果nums中存在132模式的子序列,返回true;否则,返回false。示例3:输入:nums=[-1,3,2,0]......