2012-08-11 92 views
1

我有很多.Net开发背后,我的大多数应用程序分层在用户界面,服务,BL和DAL ..和数据库层。每一层通常都是自己的项目,所有这些项目都相互引用,使数据流通过解决方案。Android应用程序架构

我是Java和Android的全新品牌。看起来是我们开发了一个输出文件,因此开发了一个项目。我会为每个图层使用不同的文件夹吗?也许是一个ServiceLayer文件夹,里面有类,然后是BusinessLayer文件夹,里面有业务类?

什么是通常的结构来保持代码清洁和可维护?我不是因为专业的原因这样做(还没有)。这纯粹是为了学习。

编辑:该应用程序只是一个简单的应用程序,允许用户每天输入关于某事的数据(简单的用户界面,可能有几个下拉式的loookups从数据库中获取'参考数据'),并允许用户选择一些内容,输入一些细节,并存储到内置的SQLite数据库中。

一旦工作,我想将数据同步到一个在线数据库(我将写一个托管在.Net托管系统(GoDaddy,现在)上的web服务),它将存储最新的数据,并提供一个web前端如果用户可以访问笔记本电脑或PC,则可以提供更简单的数据输入)。所以,某种Web服务会刷新我的应用程序,并将更新发送到服务器。

+0

这相当依赖于你正在建设什么样的应用程序。你能否提供一些见解? (这取决于你想达到什么变化很大) – Jon 2012-08-11 23:12:23

+0

谢谢。抱歉!我已经用你问的细节更新了这个问题。从我这里监督。谢谢。 – Craig 2012-08-11 23:21:36

回答

2

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

您应该对用户如何使用应用程序进行文字或原理图描述。修复每种可能的情况。放下稍后将用于测试的示例。

决定什么属于功能和什么 - 对可变配置。从场景中提取功能和数据实体。

从场景中决定你的应用将是什么。它是服务,活动,小部件,甚至内容提供者还是复杂系统,包括一些不同的组件。根据情景提出您的决定。

在复杂系统的情况下,在应用程序组件之间分配功能和数据实体。列出组件和它们是什么(活动或其他)。

将UI组件列表与描述他们所做的事情(而不是如何)这些将在稍后的小部件和活动或片段或布局。

为UI组件制作草稿版式。从一个简单的传球到另一个。看看用户界面。回到场景中,并使用草稿用户界面播放所有场景。所有UI组件和类放入一个包或层次结构中。

列出数据实体。决定什么是什么。将它们规划为数据库或不同数据库中的集合或表格。将它们作为类,将它们放入另一个包或另一个包的层次结构中。这里还提供了DB助手 - 通过SQL与DB交谈的类。

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

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

不要把所有的全局变量放到特殊的静态类中 - 这是一个不好的做法。你在混合代码和配置。

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

不要在代码中使用不可配置的常量!可能是,只有你的名字:-)。有时每隔一个常数就会变得不恒定。

总是这样做:写点东西 - 把东西连接到批量 - 为这个新东西添加测试 - 测试这个新的 - 测试批量 - 重复。只有小步!

+0

谢谢Basbous。我做了很多你说的话,但真的很喜欢你的设计方法。谢谢。我的应用程序已经作为一个小的.Net应用程序生存我想用Java重做它作为学习练习。所以数据实体...甚至是数据库的设计。在我的.Net世界中,我让DAL执行数据访问,获取数据,并将它们存储在与表匹配的类中(以及用于更复杂的数据提取的自定义类),然后将这些对象上下传递。这是在Java中使用的做法吗? – Craig 2012-08-11 23:28:20

+0

@Craig是的,你可以在Java中实现你的结构,我是ex dot net开发者,我曾经把我的经验从dot net移植到java, 创建适配器包,实体包,服务和广播包以及活动包,所以你用同样的方式在网络中管理代码,我可以帮你吗? – Basbous 2012-08-11 23:31:36