对于我的 android/java 应用程序,我提出了以下架构:
我的每个类都只存储对名为“appgeneral”的对象的引用,而不是将对象作为属性存储在它们所属的类中(例如, View 和模型存储在 Controller 中)。然后 appgeneral 对象包含所有对象作为整个应用程序的属性(例如 View 、模型、 Controller 、日志记录、 validator 等),包括所有数据和一些通用方法,例如错误报告。优点:当我创建新对象时,我只需要传递一个对象引用并存储它,然后我就可以从任何地方访问所有数据和方法。不再因应用程序的设计原因无法访问某些操作而痛苦。
一方面,我认为这是个好主意,但另一方面,由于我对软件开发还很陌生,所以我持怀疑态度,因为我没有见过这样做的。
但是有什么严重的缺点吗?正如我所说,我想知道为什么没有更多人这样做。
谢谢。
最佳答案
对于非常小的应用程序,您的设计是有意义的,但程序越大,代码就会变得越复杂,因此需要一个设计良好的结构来保持对什么做什么的概览。
在一个更大的项目中,在一个对象中收集许多对其他对象的引用,其中许多不同的对象是不相关的,您将很快失去对什么引用做什么以及在哪里需要的概述。如果您更改代码中的任何内容,即使您作为作者也不清楚是否需要删除某些引用。
此外,您可能会产生内存问题:您必须跟踪何时释放/设置空引用收集对象中的引用。如果不这样做,就会造成内存泄漏。
关于java - 软件设计: one object available from all classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847444/