【问题标题】:Design patterns used in Android apisAndroid API 中使用的设计模式
【发布时间】:2011-11-02 10:34:57
【问题描述】:

我们有一个设计模式课的家庭作业。在这方面,我们必须解释在任何 api/框架中使用的任何设计模式。我在想我是否可以使用 Android api 做同样的事情。我知道 android 使用了一些命令、观察者、模板方法模式等等,但如果有人能指出我的起始参考文档,那就太好了。

非常感谢您。

【问题讨论】:

  • @Ray 讨论了在应用程序开发中使用的设计模式。我说的是 Android api 中使用的 GoF 设计模式。 android如何在内部使用它来解决一些目的。
  • Android 是开源的。所以获取源代码,选择一两个包,阅读代码并找出模式。目的或你的作业是让你做一些工作和学习一些东西,而不是在 SO 上得到现成的答案。
  • @Nikolay 我没有要求任何人做我的作业。我的意思是,如果我能抢先了解使用某些 GoF 模式的包,那么我可以直接从该包或一些在线 android 参考文档开始我的研究,他们可能在其中列出了他们使用过什么的地方只是一周的作业,我不想进入错误的包裹并浪费时间,所以我只要求一个起点。
  • “浪费时间”也是一种错误的学习方式。这是reference。我认为没有关于这些模式的参考文档,但您可能会找到该平台的高级概述来帮助您入门。

标签: android api design-patterns


【解决方案1】:

几乎按照定义,框架倾向于实现高级模式,例如 MVC 或 ORM 模式。这些在 GOF 文本中没有涉及,尽管您可以在其他模式书中找到它们,例如 Martin Fowler 的 Patterns of Enterprise Application Architecture。一些 GOF 模式在框架甚至语言级别实现(例如 C# 事件/委托作为 Observer 模式的示例),但大多数 GOF 模式留给个人开发人员根据需要实现,因为细节往往是应用程序或特定领域的。

Android 也是如此。它具有内置的模型-视图-控制器的特定风格,但没有太多特定于 GOF 的模式。您可以将 Activity 生命周期回调(onStart、onResume 等)视为一种观察者模式,尽管只有一个专用订阅者。

另一个例子可能是AsyncTask,它可以被认为是Command Pattern 的一个物种。我会把它留给你来建立联系。毕竟是功课。

【讨论】:

    【解决方案2】:

    此链接显示 Java 核心中设计模式的使用范围有多大。我希望 android 也能广泛使用它们。

    Examples of GoF Design Patterns in Java's core libraries

    看看适配器模式具体是如何在Android框架中使用的(第二个例子来自Android的源代码)

    http://javatechig.com/design-patterns/adapter-design-pattern-in-java

    http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/widget/Adapter.java?av=f

    设计模式只是为了简化编码而制定的约定。并使其更加清晰,因此您应该确保这是他们所做的,而不是模糊您的代码结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多