一、观察者模式
观察者模式是一种行为型模式,它定义了一种一对多的关系,让多个观察者对象同时监听一个主题对象。当主题对象状态发生改变时,会自动通知所有的观察者对象,使它们能够及时进行响应。在Android开发中,观察者模式常被用于一些事件的处理,例如Activity的生命周期,控件的状态改变等。
//主题对象,可以添加、删除、通知观察者
public class Subject {
private List observers = 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开发中常见的设计模式,它们分别具有不同的应用场景,可以提高代码的复用性,可读性和可维护性。在实际开发中,我们可以根据具体的业务需求选择合适的设计模式来进行开发,从而使我们的程序更加高效、简洁和可靠。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/186347.html
微信扫一扫
支付宝扫一扫