我已经在软件开发方面工作了很多年(10岁以上),我刚刚开始正确看待Android.根据我目前的理解,GUI是由活动(替换表格等)构建的,并且每个都被视为与其自己的迷你程序一样,因为传递对数据的引用不是最简单的方法,而那些可用的并不是特别的不错.
无论如何,我目前最喜欢的GUI开发方法是创建一个包含我想要提供的所有功能的对象模型,然后我可以构建GUI(或控制台,或服务器访问,或其他)通过接口与该模型通信.各个表单可以通过剪切接口,并且只传递模型的部分部分,用于该特定表单.对我来说,这使得前端与功能分离,并且还从GUI中抽象出对象模型的实现.对我来说,一个优点是我可以编写一个库来做一些事情,然后坚持使用java GUI,android GUI,控制台等等.实际上,我有时会在开发任何GUI之前开发功能.
现在,在Android中,这似乎是一个棘手的方法.我想我可以通过序列化模型及其部分来实现同样的目的,并将它们作为字符串传递,但我不确定这是否实用.我还可以看到,如果模型的一部分需要回调到模型的另一部分而不存在,因为它不在序列化部分中,这将不起作用.即,我有一个包含数据对象列表的对象模型.我想将数据对象传递给另一个Activity,如果它完全被编辑,请回调对象模型以使其能够执行其他操作.
我能写一些东西来重用我的对象模型,或者这种方法是否与Android不兼容?如果它确实有效,怎么样?如果没有,我可以使用哪些合适的替代品?
您正尝试使用桌面GUI或控制台模式开发来模拟Android开发.
相反,请考虑Web开发.
除非你加入了这个node.js行列,否则你的Web应用程序不是用Javascript编写的.但是,您的一系列GUI功能将在Javascript中实现(例如,客户端验证,在启用提交按钮之前强制执行必填字段).虽然您可能有一个丰富的对象模型来处理大量业务逻辑,但它将在服务器上,Java,Ruby,PHP,Perl,Python或其他任何东西.网页不直接与该富对象模型交互.而且,每个网页都是独立的,只能通过键值对(GET参数)中相对有限的数据将数据传递给其他页面.
从架构方面来看,Android是一种桌面和Web开发模式的混搭.活动是独立的实体,松散耦合,网页也是如此.您不会在活动之间传递模型对象,就像您不在Web页面之间传递模型对象一样.
这并不意味着您不能拥有丰富的对象模型.但是,正如网页回到中央服务器来操纵Web应用程序的丰富对象模型一样,活动需要返回到中央存储来操纵您的富对象模型.而且,正如网页倾向于传递对象的标识符一样,您的活动可以传递对象的标识符,因此每个活动都可以从中央存储访问正确的对象.
这个中央存储是由一个Service或通过一些单例调解取决于你,并且将取决于一些丰富的对象模型应该代表什么.
| 归档时间: |
|
| 查看次数: |
2551 次 |
| 最近记录: |