同事需要实现一个 统一对象池
这个对象池能注册对象,和类
如果是对象则
通过反射获取其中的类定义
的全路径来 实现对类的唯一存储
为了实现类安全 能够保证 任何注册进来的实现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类的路径实例化类并调用方法:仅仅知道类的路径,就可以实例化对象,利用反射机制调用其方法
Unity对象池是一种优化游戏性能的技术,它通过预先创建并存储一系列可重用的游戏对象,避免了频繁的对象实例化和销毁过程,从而减少了内存碎片和CPU开销。在本案例Demo中,我们将深入探讨Unity对象池的工作原理、...
本篇文章介绍了Python中的面向对象编程,重点讲解'实例化对象'这一概念及其应用场景,包括类的基础定义、实例化对象的基本语法规则,并给出了简单的BankAccount类的实例演示,以及在实际项目(银行账户管理、博客...
本文将详细介绍如何实现一个ActiveMQ连接池的完整封装实例工具类,并探讨其背后的设计思想。 首先,我们需要了解JMS(Java Message Service)接口,它是Java平台中用于创建、发送、接收和读取消息的标准API。...
在C#编程语言中,动态声明与使用对象数组是一种常见的操作...总之,这个实例涵盖了C#中动态数组的基本使用,包括声明、实例化、数据保护和内存管理。通过学习和理解这些概念,开发者能够更有效地处理各种规模的数据集。
用反射在动态实例化类的同时设置按钮的权限,这样,实现了操作权限与具体窗体模块的分离,这个问题我以前一直不知道怎么弄,google也查不到,直到最近才解决了,传上来,如果没有人下载,自己做个纪念也好。
// 实例化 } } } return instance; } } ``` 这种方式通过双重检查锁定(Double-Checked Locking)保证了线程安全性,同时实现了懒加载,使得在多线程环境下也能正确地创建单例对象。 #### 总结 单实例模式是...
源代码中的示例会展示如何创建和使用类,包括构造函数的使用,以及如何通过实例化类来创建对象。 2. **封装**:封装是面向对象编程的关键特征,它隐藏了对象内部的实现细节,仅通过公共接口与外界交互。这里的实例...
抽象类是一个不能被实例化的类,通常作为父类使用。抽象类中可以包含抽象方法和普通方法。抽象类的子类必须实现父类的所有抽象方法。 在上面的代码中,抽象类 Shape 中包含了抽象方法 draw(),而 Square 类继承自 ...
该技术基于面向对象编程思想,引入了类和对象的概念,通过类的定义和实例化来实现数据的封装和继承。 在 LabVIEW 中,类是用来表示通用的特性,类的定义包括数据和方法两部分。数据是类的特性,方法是类的行为。...
分享一款unity的插件 用来建立对象实例化池子管理的工具
在实际编程中,我们需要在主窗口或者对应的控件类中实例化CustomToolTip,并在需要显示提示的地方调用其show()方法,传入相应的数据,如好友信息。此外,可能还需要处理窗口的关闭事件,确保用户点击关闭按钮或离开...
信息隐蔽可以理解为封装的一部分,它通过限制对类的成员的直接访问,增强了软件的模块化,有助于降低系统的复杂性,并提高了数据的安全性。封装和信息隐蔽确保了在不对对象整体产生影响的情况下,可以自由修改和替换...
耿祥义版的课程可能包括各种实例,如学生管理系统、银行账户操作等,这些实例会演示如何定义类、创建对象、实现继承、接口和多态等。通过PPT,学习者能清晰地看到类结构和逻辑流程;而源码则提供了动手实践的机会,...
标题"asp输出json对象实例"指的是在ASP中创建和输出一个JSON对象,而不是简单的JSON字符串。通常,我们需要先将ASP中的数据结构(如数组或对象)转化为JSON格式,然后通过HTTP响应输出到客户端。这个过程中可能会...
题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...
- 安全的会话管理:使用安全的方法来生成、存储和验证会话标识符。 - 密码学实践:使用成熟的加密算法保护敏感数据,例如使用HTTPS进行数据传输。 3. 安全编程语言特性: - 使用类型安全的语言:避免语言层面的...
同时,通过XML或Java配置,我们可以声明并管理需要的bean,如数据库连接池、数据访问对象(DAO)、服务层对象等,并利用Spring的依赖注入特性,使得这些bean之间能够无缝协作。 5. **数据持久化**:在这个系统中,...
在本文中,我们将深入探讨如何使用MFC中的CAsyncSocket类来实现一个简单的聊天室程序。CAsyncSocket类是Microsoft Foundation Class (MFC) 库为Windows Sockets API(Winsock)提供的一种封装,它使得在C++环境中...