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

宁波拾谷网站建设网站 电信已备案 联通

宁波拾谷网站建设,网站 电信已备案 联通,长春网站制作,vs2010网站设计用整张图片做背景定义 运用共享技术有效地支持大量细粒度的对象。 使用场景 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中#xff0c;从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时#xff0c;让外部客户程序仍…定义 运用共享技术有效地支持大量细粒度的对象。 使用场景 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时让外部客户程序仍然能够透明地使用面向对象的方式来进行操作? 结构 代码示例 //Flyweight.h /****************************************************/ #ifndef FLYWEIGHT_H #define FLYWEIGHT_H #includeiostream #includemap using namespace std; //享元模式 class Flyweight //抽象的享元类 { public :virtual void Operator(int i) 0; };class ConcreteFlyweight : public Flyweight //共享的子类 { public:void Operator(int i){cout 共享的Flyweight iendl;} };class UnshareConcreteFlyweight : public Flyweight {void Operation(int i){cout 不共享的Flyweight : i endl;} };class FlyweightFactory //享元工厂 { private: mapstring, Flyweight* flyweights; //模块名列表 public:FlyweightFactory(){//这里需要用堆因为这是给客户程序返回的如果不用堆则会返回局部对象的引用flyweights[x] new ConcreteFlyweight();flyweights[y] new ConcreteFlyweight();flyweights[z] new ConcreteFlyweight();//所有的属性为“z”的模块都只对应这个一个实例这正是享元模式的精髓所在呀}Flyweight* GetFlyWeight(string key){if (!flyweights.count(key))flyweights[key] new ConcreteFlyweight();return flyweights[key];}mapstring, Flyweight*::size_type CountN()//返回当前可共享的模块数{return flyweights.size();}};#endif//test.cpp /****************************************************/ #include Flyweight.h int main() {int i 100;FlyweightFactory f;//整个过程采用一个工厂Flyweight *px f.GetFlyWeight(x);//获取x对应的模块px-Operator(--i);Flyweight* py f.GetFlyWeight(y);//获取x对应的模块py-Operator(--i);Flyweight* pz f.GetFlyWeight(a);//a不在初始化的表中pz-Operator(--i);//原来就有 x,y,z 加上现在的a 一共4个 cout 可共享的模块f.CountN() 个! endl;delete px;delete py;delete pz;px py pz NULL;return 0; }运行结果 要点总结 面向对象很好地解决了抽象性的问题但是作为一个运行在机器中的程序实体我们需要考虑对象的代价问题。Flyweight主要解决面向对象的代价问题一般不触及面向对象的抽象性问题。Flyweight采用对象共享的做法来降低系统中对象的个数,从而降低细粒度对象给系统带来的内存压力。在具体实现方面要注意对象状态的处理。对象的数量太大从而导致对象内存开销加大——什么样的数量才算大?这需要我们仔细的根据具体应用情况进行评估而不能凭空臆断。
http://www.fuzeviewer.com/news/9973/

相关文章:

  • 网站开发书籍网站后台怎么做水印图片
  • 电子商务网站建设专业主修课程百度一下你就知道百度一下
  • 智能响应式网站建设销售推广做那个网站
  • 网站引导动画如何搭建海外网络
  • 做asp网站的实验收获江干区网站建设
  • 学校网站建设的背景WordPress网站文章导出导入
  • o2o网站源码appwordpress付费知识
  • 网站直接登陆wordpresswordpress xiu 5.2
  • 自己做网站好还是购买网站好做视频网站需要什么高端技术
  • html5商城网站网页设计毕业设计理念
  • 网站制作报价表深圳大型网站建设公司
  • 做医疗信息网站的域名网站建设-猴王网络
  • 专业的盐城网站建设网站建设自己在家接单
  • 北京优化词网站重庆打卡景点排行榜
  • 建站行业严重产能过剩一般网站用什么数据库
  • 网站建设赫伟创意星空科技源码如何搭建网站
  • asp网站助手2345浏览器网址
  • 北京网站建设价格电子商务网站开发技术路线
  • 山东大型网站建设云南省建设系统网站
  • 做电影网站的成本wordpress外观小工具
  • 网站开发设计师岗位职责国外html5网站模板
  • 网站可以备案先提交类别后来改么公司网站建设内部调查
  • 湖北做网站平台哪家好wordpress 调用摘要
  • 外包做一个网站一般多少钱wordpress 删除示例页面
  • 罗湖实惠的网站建设费用广告设计公司哪家好
  • 网站内容设计是什么WordPress右侧导航菜单主题
  • 昆明电商网站建设wordpress英文建站
  • 网站托管外包上海高端建站网站
  • 公司网站的重要性一级做爰片a视频网站4
  • 做网站优化好的网络公司安卓开发基础