• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 关于Flyweight模式应用实践的相关介绍

关于Flyweight模式应用实践的相关介绍

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了flyweight模式,java flyweight模式,flyweight,flyweight pattern,flyweight hoodie等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

什么是Flyweight模式?

享元模式(Flyweight Pattern)是一种软件开发中的设计模式,其主要解决的问题是通过类对象的共享,来避免大量创建拥有相同内容的对象的开销。可以简单理解用空间换取时间。

举例说明

一般的设计模式解释中都会用到如下两种场景来解释Flyweight Pattern:

1.GUI字处理软件中每个文字都是对象,缓存这些对象公用。
2.字符串驻留技术(String Interning)。
具体实现

    /// <summary>
    /// 享元模式Flyweight的实现
    /// </summary>
    /// <param name="factoryMethod">分配缓存的方法</param>
    public FlyweightObjectPool(Func<T> factoryMethod)
    {
      _factoryMethod = factoryMethod;
    }

    /// <summary>
    /// 分配指定数量的对象
    /// </summary>
    /// <param name="count">指定的数量</param>
    public void Allocate(int count)
    {
      for (int i = 0; i < count; i++)
        _queue.Enqueue(_factoryMethod());
    }

    /// <summary>
    /// 缓存一个对象
    /// </summary>
    /// <param name="buffer">对象</param>
    public void Enqueue(T buffer)
    {
      _queue.Enqueue(buffer);
    }

    /// <summary>
    /// 获取一个对象
    /// </summary>
    /// <returns>对象</returns>
    public T Dequeue()
    {
      T buffer;
      return !_queue.TryDequeue(out buffer) ? _factoryMethod() : buffer;
    }
  }
</div>

使用举例

      var buffer = pool.Dequeue();

      // .. do something here ..

      pool.Enqueue(buffer);
    }
  }
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 深入C#字符串和享元(Flyweight)模式的使用分析
  • 关于Flyweight模式应用实践的相关介绍

相关文章

  • 2017-05-28比较全的一个C#操作word文档示例
  • 2017-05-28C#实现创建桌面快捷方式与添加网页到收藏夹的示例
  • 2017-05-28c#委托把方法当成参数(实例讲解)
  • 2017-05-28C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)
  • 2017-05-28c#友好显示日期 c#日期datetime使用方法
  • 2017-05-28c#中使用自动属性减少代码输入量
  • 2017-05-28C#排序算法的比较分析
  • 2017-05-28C#中sleep和wait的区别分析
  • 2017-05-28C#操作注册表的方法详解
  • 2017-05-28C#中数组初始化与数组元素复制的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#如何自动识别文件的编码
    • C#窗体显示留言时间的方法
    • C#中Try-Catch语句真的影响程序性能吗?
    • spreadsheetgear插件屏蔽鼠标右键的方法
    • C# char类型字符转换大小写的实现代码
    • Silverlight文件上传下载实现方法(下载保存)
    • c# split分隔字符串使用方法
    • C#在子线程中更新窗口部件的写法
    • DevExpress根据条件设置GridControl RepositoryItem是否可编辑
    • C#窗体间通讯处理的几种方法总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有