public class Font    //12+8 bytes  8用于垃圾手机{string fontName;  //4 bytesint size;         //4 bytes Color color;      //4 bytespublic Font( string fontName, int size, Color color ){this.fontName = fontName;this.size = size;this.color = color;}public override bool Equals( object obj ){return base.Equals( obj );}}public class Color{}

 public class Charactor   //(2+4+20+2)+8 byes =36 bytes  8 bytes用于垃圾收集{char c;    //2 bytes//Font f;    //20 bytes    //重点就在于下面的实现private static Hashtable fontTable = new Hashtable();public void SetFont( String name, int size, Color color ){if( fontTable.ContainsKey( name ) ){return;}else{Font f = new Font( name, size, color );fontTable.Add( name,f );}}}

其实主要就是为了降低内存,对一些固定不变的东西做一个共享,经常变换的不做考虑,在.net里面字符串就是做了享元处理,codebehid也是享元模式的一个处理

Flyweight 享元模式相关推荐

  1. C++设计模式-Flyweight享元模式

    Flyweight享元模式 作用:运用共享技术有效地支持大量细粒度的对象. 内部状态intrinsic和外部状态extrinsic: 1)Flyweight模式中,最重要的是将对象分解成intrins ...

  2. 6中结构型设计模式的对比理解(Composite组合模式,Proxy代理模式,Flyweight享元模式,Facade门面模式,Bridge桥接模式,Decorator装饰器模式)

    结构型模式 结构型模式用来组装 类和对象,以获得更大的结构. 结构型类模式,通过继承机制来组合接口或类.简单的例子就是多重继承,最后一个类拥有所有父类的性质.这个模式有助于独立开发一个协同类.另一个例 ...

  3. php实现享元模式,php设计模式 flyweight (享元模式)

    25种php设计模式,你全都知道吗?下面用代码介绍享元模式(flyweight模式)<?php /** * 享元模式 * * 运用享元技术有效的支持大量细粒度的对象 */ class CD { ...

  4. 设计模式学习笔记--Flyweight享元模式

    Flyweight模式也叫享元模式,是由GoF提出的23种设计模式中的一种.Flyweight模式是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用,所以叫享元.   此模式解决的是由于大量 ...

  5. [转载] C#面向对象设计模式纵横谈——12. Flyweight享元模式

    主讲:李建忠 来源:http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/consyscourse/CsharpOOD. ...

  6. 设计模式之享元模式(Flyweight)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  7. java23中设计模式——结构模式——Flyweight(享元)

    2019独角兽企业重金招聘Python工程师标准>>> 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得 很庞大,比如,字处理软件,如果以每个文字都作为一 ...

  8. 享元模式-Flyweight(Java实现)

    享元模式-Flyweight 享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用. 本文中的例子如下: 使用享元模式: 小明想看编程技术的书, ...

  9. [设计模式-结构型]享元模式(Flyweight )

    概括 名称 Flyweight 结构 动机 运用共享技术有效地支持大量细粒度的对象. 适用性 一个应用程序使用了大量的对象. 完全由于使用大量的对象,造成很大的存储开销. 对象的大多数状态都可变为外部 ...

最新文章

  1. 算法经典书籍--算法设计与分析基础
  2. 扫脸支付引忧虑,那试试扫手支付?
  3. 测试socket udp 单次传输数据上限(sendto()函数data不能超过65507字节。udp头占8字节,ip头占20字节,加起来正好65535字节)
  4. 二十一、String、StringBuffer和StringBuilder的区别是什么?
  5. vue prop不同数据类型(数组,对象..)设置默认值
  6. 视频编解码器常见问题介绍
  7. SQL中使用DISTINCT显示多个字段的方法(不使用DISTINCT了)
  8. Vuex中的核心方法
  9. sdoi r1前的注意事项
  10. restFul风格实现CRUD
  11. Drupal是如何避免页面缓存保存Message信息的
  12. 2.4~5 x86计算机的组成
  13. 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——01-06 工作内容:做个工程师,而非程序工人...
  14. 深入理解Nginx:模块开发与架构解析
  15. 西威变频器使用说明书_西威变频器说明书
  16. QNAP 威联通 NAS的个人使用经验 篇三:#剁主计划-西安# 时隔3年,NAS使用须知
  17. linux tc限制网卡速度,使用TC 对LINUX服务器网卡进行带宽限制的办法
  18. Ajax中的 “success” 与 “error ”回调函数何时调用 ?
  19. 【Auto.JS】Autojs官方提取文档使用说明函数 (1)
  20. 2022年智能手机市场概括

热门文章

  1. SpringMVC中的 --- 异常处理
  2. 如何在 Xcode 中修改应用的名字
  3. 如何使用XenServer使用本地ISO镜像
  4. Maven常用参数及其说明
  5. prometheus之docker监控与告警系列(二)
  6. Unidirectional Link Detection Protocol
  7. Hexo自定义页面的两种方法
  8. 为什么Tomcat的webapps目录下新建的目录不能访问html文件?
  9. Activity的4种启动模式
  10. Android Studio的使用(三)--包不分级、修改包名