gpt4 book ai didi

android - Android开发中的设计模式原则是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:46:00 25 4
gpt4 key购买 nike

我是一名 JaveEE 开发人员。最近我加入了一个 Android 开发团队。 Android的结构让我很困惑。 MVC 设计模式似乎不适合 Android 开发。那么Android开发的设计模式原则是什么?我的意思是有关于如何编写干净、易读和有效的 Android 代码的任何提示。

最佳答案

Android 的架构一开始让我很恼火,但我开始看到他们疯狂的方法。 android文档没有很好地解释它。我最大的提示一直是很难有一个集中的数据模型,其中包含您的 Activity 共享的对象,就像一个普通的应用程序一样。 Android 似乎希望我成为一个游牧民族,因为我只能在我的 Activity 之间共享原语。并且在数据库中丢弃垃圾不是模型,因为它不包含任何行为。因此,对于大多数人来说,我的业务逻辑都在我的 Activity 中结束,因此很难在其他 Activity 中共享业务逻辑。

我发现我错过了一些关键的拼图。 Android是MVC。但是,它与 View 的耦合度很高。

  1. Activity == Controller
  2. 模型 == 应用程序的子类
  3. 任何子类 View == View

有趣的是,您可以创建 Application 的子类并在您的 Manifest 文件中声明它,Android 将创建此对象的单个实例,无论销毁或创建什么 Activity,该对象的长度都与您的应用程序一样长。这意味着您可以在那里构建一个所有 Activity 都可以访问的集中式数据模型。

我认为这有点像原始的 Spring 容器,您可以初始化对象并解决它们之间的依赖关系。这样,您可以将应用程序的模型部分与 Activity 本身分离。只需让 Activity 对模型进行调用,并手动回调以接收结果,以便它可以更新 UI。

Android 的问题在于它大量混合了 Controller 和 View 。例如,TabActivity、ListActivity 等子类暗示正在使用某个 View 。所以换出一个 View 是相当复杂的。即使您使用 Activity, Controller 也会对 View 的内容做出非常具体的假设。他包含对 UI 对象(如 TextView 等)的直接引用。它注册低级别事件,如点击、键盘等。

如果 Activity 可以注册更高级的事件,例如“登录”、“更新帐户余额”等, View 会为响应一系列点击、键盘、触摸事件而调度这些事件会更好。这样, Controller 就可以在您描述功能而不是设计功能的级别上工作。

我认为我们最终会实现这种类型的设计,因为我们更好地理解了提出更好的工具和技术。看起来 Android 可能具有实现这一点的可扩展性,但这取决于社区。

关于android - Android开发中的设计模式原则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3235380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com