遭遇类对象池管理的类的 实例化范围安全问题

同事需要实现一个 统一对象池

这个对象池能注册对象,和类

如果是对象则
通过反射获取其中的类定义
的全路径来 实现对类的唯一存储


为了实现类安全 能够保证 任何注册进来的实现poolObject基类的类 只能在这个对象池中通过 get来获取

就必须 想办法实现 一种唯一标识的方式

因此, 我给他的解决方案是 原型对象实现

在注册进来的原型对象上 标记一个字段 类似Object(Class).prototype.abc = "自定义的常量a",

然后再构造函数中判断Object(Class).prototype.abc 是否和设定好的(自定义的常量b)值一样

默认为不一样 这样就会跑错

然后再 pool中每次get前 先修改这个abc为"自定义的常量b" 然后再new出来返回

然后再修改回"自定义的常量a"


这样就实现了他的需求 不过....


还有一种方案:
是在这个对象池的内新建一个internal STATIC的字段,当作锁来使用, 而在平时NEW的时候在父类中比较这个字段, 在取的时候比较这个字段, 先修改这个字段, 在从池中剔除一个 再修改回去 , 跟上一种方案在思想上差不多, 不过不用动用原型了


我觉得他是多此一举= =

因为对象池这东西 完全应该靠那些程序员来 自己实现, 还不如告诉他们一个思想来的好



随意了

PS: 效率不知道 我没测试过 呼呼~~~~~~~~~~~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值