JavaFX技巧来节省内存! 属性和可观察物的阴影场

本文探讨了在JavaFX中如何使用属性API可能导致内存消耗,并介绍了一种称为'阴影字段'的技术来节省内存。通过接口和默认方法,实现了访问实际值或属性包装器的智能方式,减少了样板代码,简化了Employee类的设计。尽管可能在某些场景下影响序列化,但这种方法为大多数JavaFX应用提供了更简洁的解决方案。

JavaFX的世界中, Properties API允许UI开发人员将值绑定到UI控件。 这种功能非常容易,但是当对象模型经常使用属性时,应用程序可能会很快耗尽内存。 我通常会编写两个单独的对象,例如pojo类和表示模型对象。 此技术通常在基于Swing的应用程序中使用。 从JavaFX角度来看,您可以只创建一个具有属性的对象,以允许观察者(侦听器)更新值。 听起来不错吧? 不完全是因为主要问题是当所有对象的(pojo)属性(字段)都是还包装实际值的属性时,程序员(api的用户)可能根本不想绑定或使用属性,而只想访问实际值。 那么,JavaFX开发人员该做什么?

一个TreeTable控件持有雇员。

一个TreeTable控件持有雇员。

我经常访问Dirk Lemmermann的博客Pixel Perfect ,该博客经常发布非常有用的JavaFX技巧。 最近,Dirk在博客上发表了一篇关于如何使用一种有趣的模式“ Shadow Fields ”来节省内存的博客。 要查看他的帖子,请访问他的博客条目JavaFX Tip 23:节省内存! 属性的阴影字段。 。 Dirk的JavaFX技巧确实有助于解决上述问题(减少堆),但是我注意到必须存在样板代码才能( 聪明地 确定 )为调用者提供返回值是实际对象还是属性包装器对象。 例如,该代码将返回intInteger值,而不是在调用getset方法时返回IntegerProperty对象,从而节省了内存。 此外,代码声明了两个变量来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值