需要通过本主题中提到的技巧轻松解决的新要求需要验证。
除了肮脏的实现,顾问说,他允许我们使用肮脏的分配。
因此,我开始使用BADI方法,并得到两个脏分配以使其正常工作。
一个正在分配一个没有对GUI对象的引用的对象,而另一个仅分配一个数据表。两者都驻留在同一程序中。
现在,我想从同一程序的ALV网格之一分配字段符号。
SY-SUBRC
返回0
,但以后的场符号指向INITIAL
。我可以想象,就安全性而言,这是不允许的。
无论如何,我只是在这里要求得到我的假设的确认或更正。
据我所知,它与安全性无关。有一些技术可以避免脏分配的可能性,但这是另一回事了。当定义为全局时,对GUI控件的引用仍然作为普通的,可访问的变量保留在此处,但是可以在一段时间后将其初始化。
[寻找官员CFW documentation来支持我,他们在那里写道:
控件的寿命由寿命管理来调节。终身管理会自动破坏前端的控件当不再需要它们时。当然应用程序也支持显式销毁控件。
因此,可以清除,初始化处理程序或自动由系统本身(种类为“垃圾收集器”)初始化对服务器端GUI控件的引用。
有关控件生命周期here的更多信息。
使用脏分配通常是一个非常糟糕的主意,因为它破坏了软件设计的至少两个原理(封装和接口),因此可能会破坏安全性和鲁棒性。有关使用脏分配时可能出问题的一些说明,请阅读我的博客Agreements must be kept