构造函数:设置此引用

时间:2013-03-08 11:18:41

标签: java

我已经实现了一个连接到数据库的应用程序。现在,问题是我需要为某些对象实现缓存系统(如果容易的话),因为每当我需要那些对象时,它们的初始化需要很长时间才能从数据库中获取所需的数据对象。 (这些对象不会经常更改,事实上,如果需要,我可以使用时间戳更新它们。)

由于我无法轻易更改整个应用程序,我想知道是否有任何方法,以便我可以在构造函数本身中设置“this”对象。我指的是Objective-C的能力,我可以调用任何返回id的方法,并将其设置为self“变量”,然后更新整个对象。 为了更好地解释我的想法:我想在这些类中初始化静态缓存,并在构造函数中获取已存储的对象(如果可用)。请注意,所有 setter也引用SQL 代码。

我也知道我可以使用已存储对象的getters 来设置构造函数中新值的值,但这样做也会创建很多对象如果值中有更改,我将不会将此复制到从该克隆中克隆的所有其他对象。

任何想法,谢谢?!

1 个答案:

答案 0 :(得分:4)

构造函数仅对新对象进行操作。如果要重用对象,则不能使用构造函数。创建对象本身是微不足道的<< 100 ns让我相信你不需要回收对象,而是来自数据库的对象中的数据。

访问数据库大约需要0.1到10毫秒。创建一个对象是10到100 ns(百万分之一毫秒)如果你担心创建新对象的成本,你根本不应该使用数据库,因为它可能要贵一百万倍。