Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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
Java Android应用程序架构_Java_Android - Fatal编程技术网

Java Android应用程序架构

Java Android应用程序架构,java,android,Java,Android,我有很多.Net开发工作要做,我的大多数应用程序都是在UI、服务、BL和DAL中分层的。。和数据库层。每个层通常都是它自己的项目,所有层都相互引用,以使数据流在解决方案中运行 我是Java和Android的新手。我们似乎开发了一个输出文件,因此开发了一个项目。我会为每一层使用不同的文件夹吗?可能是一个ServiceLayer文件夹,里面有类,然后是一个BusinessLayer文件夹,里面有业务类 保持代码干净和可维护的通常结构是什么?我这样做不是出于专业原因(目前)。这纯粹是为了学习 编辑:该

我有很多.Net开发工作要做,我的大多数应用程序都是在UI、服务、BL和DAL中分层的。。和数据库层。每个层通常都是它自己的项目,所有层都相互引用,以使数据流在解决方案中运行

我是Java和Android的新手。我们似乎开发了一个输出文件,因此开发了一个项目。我会为每一层使用不同的文件夹吗?可能是一个ServiceLayer文件夹,里面有类,然后是一个BusinessLayer文件夹,里面有业务类

保持代码干净和可维护的通常结构是什么?我这样做不是出于专业原因(目前)。这纯粹是为了学习

编辑:该应用程序将是一个简单的应用程序,允许用户每天输入关于某个内容的数据(简单的UI,可能有一些下拉菜单从数据库获取“参考数据”),并允许用户选择某个内容,输入一些细节,并存储到内置的SQLite数据库


一旦成功,我想将数据同步到一个在线数据库(我将编写一个托管在.Net托管系统(GoDaddy,现在)上的web服务),它将存储最新的数据,并提供一个web前端,以便在用户可以访问笔记本电脑或PC时提供更方便的数据输入)。因此,某种web服务可以刷新我的应用程序,并将更新发送到服务器。

首先,它取决于你在做什么应用程序

您应该对用户如何使用应用程序进行文本或示意图描述。确定所有可能的情况。写下稍后用于测试的示例

决定哪些属于功能,哪些属于可变配置。从场景中提取功能和数据实体

从场景中决定您的应用程序将是什么。它是服务、活动、小部件,甚至是内容提供商或复杂系统,包括一些不同的组件。根据场景测试您的决策

对于复杂系统,在应用程序组件之间分配功能和数据实体。列出组件及其内容(活动或其他)

列出UI组件的列表,并说明它们的功能(还没有说明如何),这些将是小部件、活动、片段或稍后的布局

为UI组件制作草稿布局。从一个到另一个进行简单的传递。看看用户界面。返回到场景并在草稿UI中播放所有场景。所有UI组件和类都放在一个包或包的层次结构中

列出数据实体。决定什么将是什么。将它们规划为数据库或不同数据库中的集合或表。将它们作为类,将它们放入另一个包层次结构或另一个包中。这里还放置了DB helpers—通过SQL与DB对话的类

制作一个测试类,用测试数据填充UI和数据实体并启动它们

适配器不必是公共的,因为它们只在其父GroupView中使用。因此,通常没有适配器的文件

不要将所有全局变量放入特殊的静态类中——这是一种糟糕的做法。您正在混合代码和配置

将配置数据放入资源中。如果其中一些比较复杂,请使用XML源和解析器。将资源数据的读取器转换为全局变量。不是所有的都是静态的!例如,它们可能属于主活动实例

不要在代码中使用不可配置的常量!可能是,仅限您的姓名:-)。其他常数有时会变成非常数


始终这样做:编写一些东西-将一些东西连接到批量-为这个新东西添加测试-测试这个新东西-测试批量-重复。只有小步

这完全取决于您正在构建的应用程序的类型。你能对此提供一些见解吗?(根据你想要达到的目标,它会有很大的变化)谢谢。很抱歉我已经用你问的细节更新了问题。我的疏忽。谢谢,巴斯布。我已经做了很多你说的,但我真的很喜欢你的设计方法。谢谢我的应用程序已经作为一个小型.Net应用程序存在。我想用Java重做它作为学习练习。所以数据实体。。。甚至数据库也是设计好的。在我的.Net世界中,我让DAL进行数据访问,获取数据,并将它们存储在与表匹配的类中(以及用于更复杂数据提取的自定义类),然后在层上下传递该对象。这是Java中使用的实践吗?@Craig是的,您可以用Java实现您的结构,我是前dot net开发人员,我曾经将我的经验从dot net应用到Java,为适配器创建包,为实体创建包,为服务和广播创建包,为活动创建包,因此您可以在dot net中以相同的方式管理代码,我可以为您提供帮助。