`

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

阅读更多
同事需要实现一个 统一对象池

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

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


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

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

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

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

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

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

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

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



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



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




我觉得他是多此一举= =

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



随意了

PS:  效率不知道  我没测试过  呼呼~~~~~~~~~~~~
分享到:
评论

相关推荐

    通过java类的路径实例化类并调用方法

    通过java类的路径实例化类并调用方法:仅仅知道类的路径,就可以实例化对象,利用反射机制调用其方法

    工厂设计模式附加对象池说明

    工厂方法模式则将实例化操作委托给子类决定;抽象工厂模式则关注于创建一系列相关或相互依赖的对象族,而不是单一对象。 工厂模式的核心优点在于它将对象的创建和使用分离,提高了代码的可读性和可维护性,同时也为...

    php 数据库类 对数据库进行多种操作 只需要简单的实例化对象 就可以实现强大的功能

    很好用的php数据库类 php 数据库类 对数据库进行多种操作 只需要简单的实例化对象 就可以实现强大的功能

    Python中的“实例化对象”:从零开始的探索之旅.pdf

    本篇文章介绍了Python中的面向对象编程,重点讲解'实例化对象'这一概念及其应用场景,包括类的基础定义、实例化对象的基本语法规则,并给出了简单的BankAccount类的实例演示,以及在实际项目(银行账户管理、博客...

    ActiveMQ连接池完整封装实例工具类

    本文将详细介绍如何实现一个ActiveMQ连接池的完整封装实例工具类,并探讨其背后的设计思想。 首先,我们需要了解JMS(Java Message Service)接口,它是Java平台中用于创建、发送、接收和读取消息的标准API。...

    C#中动态声明与使用对象数组实例

    在C#编程语言中,动态声明与使用对象数组是一种常见的操作...总之,这个实例涵盖了C#中动态数组的基本使用,包括声明、实例化、数据保护和内存管理。通过学习和理解这些概念,开发者能够更有效地处理各种规模的数据集。

    Delphi XE2 DataSnap业务对象池demo

    在这个"Delphi XE2 DataSnap业务对象池demo"中,我们主要关注的是如何利用DataSnap框架来管理业务对象池,提高程序性能和效率。业务对象池是一种设计模式,通过复用已经创建的对象,减少创建新对象的开销,从而优化...

    Java对象实例化

    JAVA类,只要知道了类名(全名)可以创建其实例...  除此之外,还可以利用java.lang.Class类来实现JAVA类的实例化。  1、空构造方法  如果类有空构造方法,如下面的类 public class NewObject { String name;

    cpp代码-对象实例化 ----普通对象 和 指针对象

    在C++编程语言中,对象实例化是创建类(class)的具体实例的过程,这些实例可以是普通对象或指针对象。下面将详细讲解这两种类型的对象实例化及其在实际编程中的应用。 首先,让我们理解普通对象的实例化。当我们在...

    java面向对象编程单实例模式解析

    // 实例化 } } } return instance; } } ``` 这种方式通过双重检查锁定(Double-Checked Locking)保证了线程安全性,同时实现了懒加载,使得在多线程环境下也能正确地创建单例对象。 #### 总结 单实例模式是...

    android 仿京东商品三级分类简单实例

    在Android开发中,构建一个类似京东商品的三级分类系统是一项常见的任务,这涉及到用户界面设计、数据结构管理和触摸事件处理等多个方面。在这个简单的实例中,我们将探讨如何在Android平台上实现这样的功能,不涉及...

    接口对象的实例化在接口回调中的使用方法

    首先澄清一个问题,就是接口不仅可以声明对象,而且可以把对象实例化!作用见下文。 接口回调:可以把实现某一接口类创建的对象的引用赋给该接口声明的接口变量,那么该 接口变量就可以调用被类实现的接口中的方法。...

    举例讲解Java设计模式中的对象池模式编程

    3. **ReusablePool**:对象池管理器,负责对象的实例化、回收和销毁。它维护了一个对象集合,并提供了一系列API供客户端操作,例如获取对象、归还对象、设置池大小等。 在上述代码示例中,`ObjectPool` 类实现了...

    php实例化一个类的具体方法

    类的实例化就是对象。一个类可以分成两个部分,一个是静态描述,就是类里的成员属性。第二个是动态描述,就是类里的成员方法,也就是对象的功能。 声明一个类,可以在class前加一些关键字,如abstract或final等。 ...

    Java 面向对象 练习题与答案

    抽象类是一个不能被实例化的类,通常作为父类使用。抽象类中可以包含抽象方法和普通方法。抽象类的子类必须实现父类的所有抽象方法。 在上面的代码中,抽象类 Shape 中包含了抽象方法 draw(),而 Square 类继承自 ...

    java内部类使用总结

    创建实例内部类对象需要先创建外部类对象,并通过外部类对象来实例化内部类。 - **静态内部类**:使用`static`修饰的内部类,属于外部类本身,不依赖于外部类的实例,可以直接通过外部类的名字进行访问。 - **局部...

    Excel对象、属性、方法、实例

    在Excel VBA(Visual Basic for Applications)编程中,对象、属性和方法是核心概念,用于构建和控制Excel应用...通过熟练掌握对象、属性和方法,开发者可以解锁Excel的无限潜力,解决各种复杂的数据管理和分析问题。

    java面向对象程序设计第2版第4章类与对象.ppt

    在Java中,对象是类的实例,创建对象通常涉及两步:声明和实例化。例如: ```java People zhangPing; // 声明一个People类型的对象 zhangPing = new People(); // 实例化,为zhangPing分配内存空间 ``` 对象的创建...

    unity的 对象池 插件PoolManager 的v6.0.0版本

    分享一款unity的插件 用来建立对象实例化池子管理的工具

    python基础知识整理.docx

    本资源摘要信息将全面介绍 Python 基础知识,涵盖编程范式、面对对象设计与编程、类和对象、实例化、类和对象的关系、类的相关学问、对象相关学问等重要概念。 一、编程范式 编程范式是指编程的方法论,标识一种...

Global site tag (gtag.js) - Google Analytics