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

甜品网站模板/图片外链在线生成网址

甜品网站模板,图片外链在线生成网址,茶网站设计素材下载,wordpress如何更换主题1、定义与动机 概述:享元模式和单例模式一样,都是为了解决程序的性能问题。面向对象很好地解决了"抽象"的问题,但是必不可免得要付出一定的代价。对于通常情况来讲,面向对象的成本大豆可以忽略不计。但是某些情况&#…
1、定义与动机
  • 概述:享元模式和单例模式一样,都是为了解决程序的性能问题。面向对象很好地解决了"抽象"的问题,但是必不可免得要付出一定的代价。对于通常情况来讲,面向对象的成本大豆可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。

  • 定义:运用共享技术有效地支持大量细粒度的对象。

  • 动机:

    • 在软件系统中采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,而带来很高的运行时代价——主要指内存需求方面的代价。
    • 如何避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作?
  • 个人理解:例如在电脑中存在大量的字体

    • 首先:电脑在启动时不可能把所有的字体的文件渲染方式或者字体样式都加载到内存中,而应该是在需要的时候去加载

    • 其次:当电脑字体需要更改时会创建一个字体对象,而wps/office中的字体也会有一个对象字体。

    • 当word和ppt中的字体相同时,应该是只需要创建一个对象,因为字体这个东西应该说只读(只用来渲染,总不可能更改样式吧),因此这两个对象应该使用同一个对象即可,不应该在需要的地方就new!

    • 很明显这里也是解决一个性能问题的设计模式

    • 比较常见的一个实用地方:各种池子,线程池、内存池、连接池…,它们都应该创建好需要的时候去取一个就行,用完了还回去;而不是需要的时候new一个。

2、享元模式
  • 对于Font类创建出来的对象应该只能读,不允许修改
  • FontFactory字体工厂负责取字体,如果没有就new一个字体然后存放在一个数据结构中(这里用无序map)
#include <iostream>
#include <unordered_map>
#include <string>
class Font{
private:// unique object keystd::string key;// object state ...
public:Font(const std::string &_key){// ...}
};class FontFactory{
private:std::unordered_map<std::string, Font*> fontPool;
public:Font *GetFont(const std::string &key){if(fontPool.find(key) == fontPool.end()){Font *font = new Font(key);fontPool.insert(std::make_pair(key, font));}return fontPool[key];}
};void process()
{FontFactory* fontFactory = new FontFactory();Font* songStyle = fontFactory->GetFont("宋体");Font* kaiStyle = fontFactory->GetFont("楷体");// ...
}

其实这里没有设计好:

  • FontFactory可以到处创建,可以考虑把FontFactory字体工厂做成一个单例的工厂。
  • 字体获取的多线程安全问题,准确来说获取应该是没有线程安全问题的,创建有…
3、总结
  • 面向对象很好的解决了抽象性问题,但是作为一个运行在机器中的程序实体,我们需要考虑对象的代价问题。Flyweight主要解决面向对象的代价问题,一般不初级面向队形的抽象性问题
  • Flyweight采用对象共享的做法来降低系统中对象的个数,从而降低细粒度对象给系统带来的内存压力。在具体实现方面,要注意对象的状态处理(即只读不修改,否则后续可能无法重复使用)
  • 对象的数量太大从而导致对象内存开销加大——什么样的数量才算大?这需要仔细的根据具体应用情况进行评估,而不能凭空臆断。
    在这里插入图片描述
http://www.jinmujx.cn/news/484.html

相关文章:

  • 青岛网站制作服务商/如何做好网站推广优化
  • 个人网站建设与维护/如何建站
  • wui网站建设/上海seo推广平台
  • 福田祥菱m2柴油版/seo高级教程
  • 静态网站 apache/专业网站优化排名
  • 查看注册过的网站/nba最新交易信息
  • 做banner的在线网站/临沂seo公司稳健火星
  • asp网站伪静态教程/常见的搜索引擎
  • 做网站的分辨率/祁阳seo
  • 做婚纱网站的意义/日本比分预测
  • wordpress国内訪問/一个具体网站的seo优化
  • 眼镜网站建设/网络销售工资一般多少
  • 叙述一个网站开发流程/广州seo优化效果
  • 我想出租做房 请问哪个网站好些/手机网站建设价格
  • 郑州 网站报价/广告推广代运营公司
  • 一元云购网站怎么做/各平台推广费用
  • 云主机可以做多少网站空间/短信广告投放
  • 网站搭建心得体会/网站seo收录
  • 国外哪些做问卷赚钱的网站/做网络销售如何找客户
  • 常德规划建设局网站/深圳做推广哪家比较好
  • dede wap网站模板/做网站推广好做吗
  • 设计个网站要多少钱/关键词搜索数据
  • 婚恋网站怎么做/西地那非片的功能主治
  • 政府网站栏目设计原则/网络软文
  • app设计网站模板/google优化师
  • 做网站月收入多少/百度网站推广
  • 如何建立和设计公司网站作文/百度快速seo优化
  • 邢台路桥建设总公司没有网站吗/宣传软文范例
  • 商城网站建设视频教程/关键词排名优化教程
  • 网站seo做哪些工作/seo引擎优化培训