- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精品资料网()
50万份精华管理资料,3万多集管理视频讲座
精品资料网()专业提供企管培训资料
更多资料请访问精品资料网 ()
此资料来自:精品资料网(
此资料来自:
精品资料网( )
联系电话:020值班手机提供50万份管理资料下载
3万集企业管理资料下载
1300GB高清管理讲座硬盘拷贝
更多企业学院: /Shop/
《中小企业管理全能版》
183套讲座+89700份资料
/Shop/40.shtml
《总经理、高层管理》
49套讲座+16388份资料
/Shop/38.shtml
《中层管理学院》
46套讲座+6020份资料?
/Shop/39.shtml
《国学智慧、易经》
46套讲座
/Shop/41.shtml
《人力资源学院》
56套讲座+27123份资料
/Shop/44.shtml
《各阶段员工培训学院》
77套讲座+ 324份资料
/Shop/49.shtml
《员工管理企业学院》
67套讲座+ 8720份资料
/Shop/42.shtml
《工厂生产管理学院》
52套讲座+ 13920份资料
/Shop/43.shtml
《财务管理学院》
53套讲座+ 17945份资料?
/Shop/45.shtml
《销售经理学院》
56套讲座+ 14350份资料
/Shop/46.shtml
《销售人员培训学院》
72套讲座+ 4879份资料
/Shop/47.shtml
Flyweight模式
一.意图?运用共享技术有效地支持大量细粒度的对象。
二.适用性 ?1、一个应用程序使用了大量的对象。 ?2、完全由于使用大量的对象,造成很大的存储开销。 ?3、对象的大多数状态都可变为外部状态。 ?4、如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。 ?5、应用程序不依赖于对象标识。由于Flyweight 对象可以被共享,对于概念上明显有别的对象,标识测试将返回真值。矚慫润厲钐瘗睞枥庑赖賃軔朧碍鳝绢懣硯涛镕頃赎巯驂雞虯从躜鞯烧论雛办罴噓剥淚軔琿閔馐虯圓绅锾潴苏琺锅苁。
三.实例:
设计一个图书的管理系统,每本书都有出版社、编号、作者、价钱等的属性,所以这个书的类可以这样设计:
class Book
{
public:
string GetPublish() {return m_publishCompany;}
string GetWriter() {return m_writer;}
int GetBookID() {return m_bookID;}
int GetPrice() {return m_price;}
string GetName() {return m_name;}
void SetPublish(string s) {m_publishCompany = s;}
void SetWriter(string s) {m_writer = s;}
void SetBookID(int id) {m_bookID = id;}
void SetPrice(int price) {m_price = price;}
void SetName(string s) {m_name = s;}
private:
string m_publishCompany; // 出版社
string m_writer; // 作者
int m_bookID; // 书籍编号
int m_price; // 价钱
string m_name; // 书名
};
这非常自然。但是随着系统的开发和试运行,这种设计就表现出一些不足的地方了,例如一般图书会非常多,成千上万本,在这些书中可能会有相同的出版社或者相同的作者,那对每本书来说就会重复了,也就是浪费了一些重复的空间。聞創沟燴鐺險爱氇谴净祸測樅锯鳗鲮詣鋃陉蛮苎覺藍驳驂签拋敘睑绑鵪壺嗫龄呓骣頂濺锇慪柠圖虬辏獨鰷濱賺钓崳。
如果每本书都耗费一些空间,那整个软件系统所耗费的空间是不可想象的。所以,我们就要想办法来解决这个问题。残骛楼諍锩瀨濟溆塹籟婭骒東戇鳖納们怿碩洒強缦骟飴顢歡窃緞駔蚂玨础对聳卻錨纩鳅抛蒉詣赅齦鸸餌螞妪麩轰鍍。
想象一下系统里面Book类的使用:
1、先看看不用共享模式:
Book book1, book2, book3;
book1.SetPublish(机械工业出版社);
book1.SetWriter(候捷);
book1.SetBookID(0000);
book1.SetPrice(20);
book1.SetName(C+
文档评论(0)