对象的访问模型


不同对象实例之间的关系,特别是容器(包括复合对象)所包含的对象的客户代码之间的关系。
1.确定性生命周期
对于复合对象,如果允许外部直接访问其内部对象,那么在语义上就可以保证内部对象的生命期不会

超过其容器的生命期。直接访问是一种效率最高的方式。
如果在容器生命期结束后继续访问容器内部对象,将产生未定义行为。
特别提及:检出模型(Checkout Model)。这是确定性生命周期的一个变种。在请求资源时,如果成

功就返回一个token,使用完毕后,客户代码再checkin。这样可以实现对容器内对象的独占访问或者

共享访问。
2.返回拷贝
该方法将容器内对象复制一份给外部调用者,因此不影响容器内对象的生命期。
3.直接返回内部对象
这个币第一种要封装一层,但也是直接返回内部对象指针(or 引用),一般只用在元素占用大量资源的情况下。
4.共享对象
这是一种基于引用计数的方式,容器持有关于其内部元素的引用计数,并对外部访问,返回“被引用计数的”元素指针。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值