第1章 设计模式1

长期以来,设计模式一直被视作解决常见软件设计问题最可靠、最有效的途径之一。各类设计模式提供了可复用的通用解决方案,用于解决常见的开发问题,例如如何在不改变对象结构的前提下添加功能,以及如何更好地构造复杂的对象。

应用模式有许多优势,尤其是开发者可以遵循这些最佳实践,简化大型项目的管理,因为使用可复用的整体软件结构(模式)可以解决相似的问题。这并不是说代码可以简单地从一个项目中复制和粘贴到另一个项目中,而是说概念本身可以在不同场景下反复使用。

应用编程模式还有许多其他的好处,本书都将涵盖,以下是一些值得提及的要点。

❑ 模式为团队中的开发者提供了一种高效的通用语言。当一位开发者描述适配器外观等结构时,其他开发者可以马上理解其含义,并识别出代码的结构和目的。

❑ 用模式添加抽象层,可以使修改和变更正在开发中的项目代码更加容易。甚至有些模式就是专为此种情况而设计的。

❑ 模式的应用范围很广,从项目的整体架构到构造项目中最基本的对象都可以应用模式。

❑ 使用模式可以大幅减少代码内部注释和通用文档,因为模式也是一种描述。类或接口的名称可以直观地说明它们的目的以及它们在模式中的地位。

Android开发平台非常适合使用模式,不仅大量的应用程序是用Java编写的,而且SDK中的许多API也应用了模式,比如使用工厂接口创建对象,以及使用建造者来构造对象。像单例这种简单的模式甚至可以作为一种模板类。通过本书,我们将学会组合构造出自己的大型模式,还将学会如何利用这些内置的结构进行最佳实践以及简化编码。

本章首先简单地介绍本书的整体情况:将要用到的模式、学习模式的顺序、在现实环境中应用模式的示例应用程序。然后,我们将快速查阅SDK中哪些组件最适合参考,尤其是一些支持库中提供的组件,这些组件可以同时支持多个平台版本。最好的学习方式就是实践,所以本章剩余部分将开发一个简单的示例应用程序,并使用第一个模式——工厂模式,以及与工厂模式相关的抽象工厂模式。

在本章,你将学到以下内容:

❑ 模式是如何分类的,以及本章将要介绍的模式;

❑ 书中示例应用程序的目的;

❑ 应该面向哪些平台版本;

❑ 支持库的用途;

❑ 工厂模式是什么,以及如何构造一个工厂模式;

❑ 如何使用UML类图;

❑ 如何在真机和模拟器上测试应用程序;

❑ 如何监控正在运行的应用程序;

❑ 如何用简单的调试工具测试代码;

❑ 抽象工厂模式是什么,以及如何使用抽象工厂模式。