java - 软件设计: one object available from all classes?

标签 java android

对于我的 android/java 应用程序,我提出了以下架构:

我的每个类都只存储对名为“appgeneral”的对象的引用,而不是将对象作为属性存储在它们所属的类中(例如, View 和模型存储在 Controller 中)。然后 appgeneral 对象包含所有对象作为整个应用程序的属性(例如 View 、模型、 Controller 、日志记录、 validator 等),包括所有数据和一些通用方法,例如错误报告。优点:当我创建新对象时,我只需要传递一个对象引用并存储它,然后我就可以从任何地方访问所有数据和方法。不再因应用程序的设计原因无法访问某些操作而痛苦。

一方面,我认为这是个好主意,但另一方面,由于我对软件开发还很陌生,所以我持怀疑态度,因为我没有见过这样做的。

但是有什么严重的缺点吗?正如我所说,我想知道为什么没有更多人这样做。

谢谢。

最佳答案

对于非常小的应用程序,您的设计是有意义的,但程序越大,代码就会变得越复杂,因此需要一个设计良好的结构来保持对什么做什么的概览。

在一个更大的项目中,在一个对象中收集许多对其他对象的引用,其中许多不同的对象是不相关的,您将很快失去对什么引用做什么以及在哪里需要的概述。如果您更改代码中的任何内容,即使您作为作者也不清楚是否需要删除某些引用。

此外,您可能会产生内存问题:您必须跟踪何时释放/设置空引用收集对象中的引用。如果不这样做,就会造成内存泄漏。

关于java - 软件设计: one object available from all classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847444/

相关文章:

java - 检查 Joda-Time DateTime 对象是否不代表一年中的最后一天的更聪明的方法是什么?

java - 使用 java 访问 SQLite 数据库

java - java注解可以被覆盖吗?如果是这样?如何?

Android - xml布局作为背景

android - Android服务的生命周期

java - 更新聚类标记图片

java - 我该怎么办呢?不同项目之间的沟通? C#

android - 如何删除 Android 文件夹下的模拟器 SD 卡

Java异步发布数据结构

android - RecyclerView 中的滚动条颜色