一、观察者模式
观察者模式是一种行为型模式,它定义了一种一对多的关系,让多个观察者对象同时监听一个主题对象。当主题对象状态发生改变时,会自动通知所有的观察者对象,使它们能够及时进行响应。在Android开发中,观察者模式常被用于一些事件的处理,例如Activity的生命周期,控件的状态改变等。
//主题对象,可以添加、删除、通知观察者 public class Subject { private Listobservers = new ArrayList (); public void attach(Observer observer) { observers.add(observer); } public void detach(Observer observer) { observers.remove(observer); } public void notifyObservers() { for (Observer observer : observers) { observer.update(); } } } //观察者接口 interface Observer { void update(); } //具体观察者 public class ConcreteObserver implements Observer { @Override public void update() { //处理事件 } }
二、单例模式
单例模式是一种创建型模式,它保证一个类只有一个实例,并提供一个全局访问点。在Android开发中,一些工具类、系统服务、数据库、全局配置等常常会使用单例模式,以保证它们在整个应用程序中只有一个实例。
//饿汉式单例模式 public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; } }
三、工厂模式
工厂模式是一种创建型模式,它定义了一个工厂方法用来创建对象,而不是通过new关键字直接实例化对象。在Android开发中,工厂模式常被用于控制对象的创建过程,以便根据不同的参数返回不同的对象类型。
//工厂接口 public interface Factory { Product createProduct(); } //具体工厂1 public class ConcreteFactory1 implements Factory { @Override public Product createProduct() { return new ConcreteProduct1(); } } //具体工厂2 public class ConcreteFactory2 implements Factory { @Override public Product createProduct() { return new ConcreteProduct2(); } } //产品接口 public interface Product { } //具体产品1 public class ConcreteProduct1 implements Product { } //具体产品2 public class ConcreteProduct2 implements Product { }
四、建造者模式
建造者模式是一种创建型模式,它将复杂对象的构建与表示分离开来,使得同样的构建过程可以创建不同的表示。在Android开发中,建造者模式常被用于构建复杂的对象,例如AlertDialog、Notification、Intent等。
//产品类 public class Product { //属性 private String partA; private String partB; private String partC; //构造方法 public Product(String partA, String partB, String partC) { this.partA = partA; this.partB = partB; this.partC = partC; } //getter、setter方法 //... } //抽象建造者 public abstract class Builder { protected Product product = new Product(); public abstract void buildPartA(); public abstract void buildPartB(); public abstract void buildPartC(); public Product getResult() { return product; } } //具体建造者 public class ConcreteBuilder extends Builder { @Override public void buildPartA() { product.setPartA("A"); } @Override public void buildPartB() { product.setPartB("B"); } @Override public void buildPartC() { product.setPartC("C"); } } //指挥者 public class Director { private Builder builder; public Director(Builder builder) { this.builder = builder; } public Product construct() { builder.buildPartA(); builder.buildPartB(); builder.buildPartC(); return builder.getResult(); } }
五、适配器模式
适配器模式是一种结构型模式,它将一个类的接口转换成客户端希望的另一个接口。在Android开发中,适配器模式常被用于将一些不兼容的类或接口进行链接,以便能够协同工作。
//适配者接口 public interface Adaptee { void doSomething(); } //适配者实现类 public class AdapteeImpl implements Adaptee { @Override public void doSomething() { //具体操作 } } //目标接口 public interface Target { void doSomething(); } //适配器 public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } @Override public void doSomething() { adaptee.doSomething(); } }以上五种设计模式是Android开发中常见的设计模式,它们分别具有不同的应用场景,可以提高代码的复用性,可读性和可维护性。在实际开发中,我们可以根据具体的业务需求选择合适的设计模式来进行开发,从而使我们的程序更加高效、简洁和可靠。