Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确构造我的Android应用程序、类、视图、数据库,使其变得简单?_Android_Sql_Class_Data Structures - Fatal编程技术网

如何正确构造我的Android应用程序、类、视图、数据库,使其变得简单?

如何正确构造我的Android应用程序、类、视图、数据库,使其变得简单?,android,sql,class,data-structures,Android,Sql,Class,Data Structures,我花了很多时间来掌握将我的Android应用程序“打包”到逻辑组件中的最佳方法,我的目标是制作一个易于更新的应用程序,并为其添加新功能 我相信“模块化”方法最有效,在这种方法中,我的数据表示为数据类,我的DB有自己的DB Helper类,它处理所有DB交互,并最终查看“控制器”活动类,这些活动类将DB Helper、数据类和视图连接在一起 话虽如此,我需要一些高级规则来组织我的编程,我发现如果我没有规则,我最终会得到草率的代码和大量的重写,因为代码变得太复杂了 考虑到这些规则,这些规则是支持SQ

我花了很多时间来掌握将我的Android应用程序“打包”到逻辑组件中的最佳方法,我的目标是制作一个易于更新的应用程序,并为其添加新功能

我相信“模块化”方法最有效,在这种方法中,我的数据表示为数据类,我的DB有自己的DB Helper类,它处理所有DB交互,并最终查看“控制器”活动类,这些活动类将DB Helper、数据类和视图连接在一起

话虽如此,我需要一些高级规则来组织我的编程,我发现如果我没有规则,我最终会得到草率的代码和大量的重写,因为代码变得太复杂了

考虑到这些规则,这些规则是支持SQL的应用程序的基础吗? 我的理论规则:

  • DB Helper类应包含所有DB逻辑。这意味着,DB助手将包含打开和关闭DB的代码,以及插入、更新和删除所有记录的代码。DB助手将返回数据,而不是作为游标,而是作为我创建的数据类对象,每个数据类都将有一个构造函数,它接受游标并使用它填充类的值

  • 数据类将允许将DB记录表示为对象,而不仅仅是游标。由于DB助手将只返回对象,因此我必须为ListView之类的项目创建适配器,以呈现对象的数据,而不是光标(我对此有点怀疑,不确定这是否是一个好主意)。所有的业务逻辑,也就是对数据类中包含的数据进行的所有计算,都将在数据类本身中完成。我设想我的数据类具有典型的getter和setter以及“calculate”方法,这些计算方法将从数据类中获取变量,并对它们执行一些有意义的业务逻辑,返回结果(这是个好主意吗?)

  • 视图控制器活动类将直接将DB助手的方法绑定到数据类,并使用结果信息更新视图。这个活动类将是非常正常的,它将初始化布局和小部件,它将使用生命周期方法在适当的时间通过DB助手在DB上执行各种查询,并且它将具有简单的更新方法,这些方法使用小部件提供的数据类对象更新小部件

  • 我发现我在安卓系统上没有任何问题,除了在设计上遇到这些问题。我厌倦了我的应用程序变得过于复杂,我需要一个简单的系统来确保事情保持可管理性和可扩展性


    如果你像我一样挣扎,请,请,请,请,把我推向正确的方向来构建一个应用程序。正是这一切阻碍了我希望让所有人都能享受到的令人惊奇的应用程序。

    在设计应用程序时,你需要考虑的最大问题是:谁来维护它?如果你将成为唯一一个在你的应用程序上进行维护的人,那么就做对你最有利的事情。但是,如果其他人将要维护此应用程序,那么是的,您将希望将类似的东西放在一起。听起来你的计划不错。确保你使用注释,如果你喜欢,你可以加入一个“readme.txt”,让其他人看到正在发生的事情,让你解释你的设计逻辑。为了避免事情变得过于复杂,可以使用包来存储类似的类


    最终,你的问题没有一个单一的正确答案

    谢谢你,布莱恩,我明白你的意思。我认为我需要更多地关注我的程序的功能,而不是它的底层代码。到目前为止,通过测试,我的程序似乎可以正常工作,我的方法在某些方面可能是非正统的,但是,正如你所说,我是唯一一个更新我的应用程序的人,因此,我应该做我最擅长的事。谢谢,我不得不承认Android总是有点古怪,但也许这并不是一件坏事。