同事需要实现一个 统一对象池
这个对象池能注册对象,和类
如果是对象则
通过反射获取其中的类定义
的全路径来 实现对类的唯一存储
为了实现类安全 能够保证 任何注册进来的实现poolObject基类的类 只能在这个对象池中通过 get来获取
就必须 想办法实现 一种唯一标识的方式
因此, 我给他的解决方案是 原型对象实现
在注册进来的原型对象上 标记一个字段 类似Object(Class).prototype.abc = "自定义的常量a",
然后再构造函数中判断Object(Class).prototype.abc 是否和设定好的(自定义的常量b)值一样
默认为不一样 这样就会跑错
然后再 pool中每次get前 先修改这个abc为"自定义的常量b" 然后再new出来返回
然后再修改回"自定义的常量a"
这样就实现了他的需求 不过....
还有一种方案:
是在这个对象池的内新建一个internal STATIC的字段,当作锁来使用, 而在平时NEW的时候在父类中比较这个字段, 在取的时候比较这个字段, 先修改这个字段, 在从池中剔除一个 再修改回去 , 跟上一种方案在思想上差不多, 不过不用动用原型了
我觉得他是多此一举= =
因为对象池这东西 完全应该靠那些程序员来 自己实现, 还不如告诉他们一个思想来的好
唉
随意了
PS: 效率不知道 我没测试过 呼呼~~~~~~~~~~~~
分享到:
相关推荐
继承关系:类的实例化顺序 * 执行过程为:启动类是否为继承关系树中的一个,如果是则先执行启动类的所有父类的静态语句块;然后执行启动类的静态语句块static{} -> * 执行启动类的main函数 -> 创建对象的继承树从...
java中通过键盘输入来实例化类对象数组,同时对类对象排序,希望初学java的同学们可以下载下学习下
通过java类的路径实例化类并调用方法:仅仅知道类的路径,就可以实例化对象,利用反射机制调用其方法
本篇文章介绍了Python中的面向对象编程,重点讲解'实例化对象'这一概念及其应用场景,包括类的基础定义、实例化对象的基本语法规则,并给出了简单的BankAccount类的实例演示,以及在实际项目(银行账户管理、博客...
本文将详细介绍如何实现一个ActiveMQ连接池的完整封装实例工具类,并探讨其背后的设计思想。 首先,我们需要了解JMS(Java Message Service)接口,它是Java平台中用于创建、发送、接收和读取消息的标准API。...
在C#编程语言中,动态声明与使用对象数组是一种常见的操作...总之,这个实例涵盖了C#中动态数组的基本使用,包括声明、实例化、数据保护和内存管理。通过学习和理解这些概念,开发者能够更有效地处理各种规模的数据集。
JAVA类,只要知道了类名(全名)可以创建其实例... 除此之外,还可以利用java.lang.Class类来实现JAVA类的实例化。 1、空构造方法 如果类有空构造方法,如下面的类 public class NewObject { String name;
编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。实例的个数用配置文件InstanceLimit.cfg指定。例如,如果InstanceLimit.cfg的内容为2,则LimitInstanceClass最多可以同时存在2个对象。...
用反射在动态实例化类的同时设置按钮的权限,这样,实现了操作权限与具体窗体模块的分离,这个问题我以前一直不知道怎么弄,google也查不到,直到最近才解决了,传上来,如果没有人下载,自己做个纪念也好。
// 实例化 } } } return instance; } } ``` 这种方式通过双重检查锁定(Double-Checked Locking)保证了线程安全性,同时实现了懒加载,使得在多线程环境下也能正确地创建单例对象。 #### 总结 单实例模式是...
在Android开发中,构建一个类似京东商品的三级分类系统是一项常见的任务,这涉及到用户界面设计、数据结构管理和触摸事件处理等多个方面。在这个简单的实例中,我们将探讨如何在Android平台上实现这样的功能,不涉及...
抽象类是一个不能被实例化的类,通常作为父类使用。抽象类中可以包含抽象方法和普通方法。抽象类的子类必须实现父类的所有抽象方法。 在上面的代码中,抽象类 Shape 中包含了抽象方法 draw(),而 Square 类继承自 ...
总结来说,类锁是解决同一对象不同实例同步操作一个目标问题的关键工具,它通过Java的synchronized关键字实现,确保了多线程环境下的资源安全。在Android开发中,合理使用类锁可以防止数据不一致,保证程序的稳定性...
该技术基于面向对象编程思想,引入了类和对象的概念,通过类的定义和实例化来实现数据的封装和继承。 在 LabVIEW 中,类是用来表示通用的特性,类的定义包括数据和方法两部分。数据是类的特性,方法是类的行为。...
分享一款unity的插件 用来建立对象实例化池子管理的工具
信息隐蔽可以理解为封装的一部分,它通过限制对类的成员的直接访问,增强了软件的模块化,有助于降低系统的复杂性,并提高了数据的安全性。封装和信息隐蔽确保了在不对对象整体产生影响的情况下,可以自由修改和替换...
5. **风险管理**:好的模板会包含风险评估和缓解策略,帮助项目经理预见潜在问题,提前制定应对措施。 6. **预算管理**:项目预算应包括人力成本、材料费用和其他间接费用。MPP模板可以追踪实际花费与预算的对比,...
类的实例化是通过调用类对象来完成的,通常情况下,这个调用过程会调用类中定义的`__init__`方法,这个方法是类的构造器,用于初始化实例状态。 Python中的类和实例都是对象。这意味着它们可以被赋值给变量、可以...
题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...