您的位置:

Android 五种常见设计模式

Android 五种常见设计模式

更新:

一、观察者模式

观察者模式是一种行为型模式,它定义了一种一对多的关系,让多个观察者对象同时监听一个主题对象。当主题对象状态发生改变时,会自动通知所有的观察者对象,使它们能够及时进行响应。在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开发中常见的设计模式,它们分别具有不同的应用场景,可以提高代码的复用性,可读性和可维护性。在实际开发中,我们可以根据具体的业务需求选择合适的设计模式来进行开发,从而使我们的程序更加高效、简洁和可靠。
Android 五种常见设计模式

一、观察者模式 观察者模式是一种行为型模式,它定义了一种一对多的关系,让多个观察者对象同时监听一个主题对象。当主题对象状态发生改变时,会自动通知所有的观察者对象,使它们能够及时进行响应。在Androi

2023-12-08
Android开发中常用的设计模式及应用场景

在Android开发中,设计模式是非常重要的一个方面。它们为开发人员提供了一种可复用、可维护和可扩展的解决方案,许多常见的问题已经有了设计模式的解决方案。在本篇文章中,将会介绍在Android开发中常

2023-12-08
Android设计模式概述

2023-05-20
Android单例模式的全面解析

2023-05-20
Android Enum: 常见状态类型

2023-05-14
Android单例模式详解

2023-05-21
构建Android MVP框架,提高应用设计模式

2023-05-14
Android应用设计规范

2023-05-14
Android日历开发全方位详解

2023-05-19
Android工厂模式

2023-05-19
印象笔记记录java学习(Java成长笔记)

2022-11-12
Android深色模式详解

2023-05-22
深入了解Android 33

2023-05-22
Android查看探究

2023-05-21
java进阶篇设计模式之四(java常用的五种设计模式)

2022-11-12
可视化界面设计工具:让Android Studio开发更高效

一、简介: Android Studio是一款专门为Android平台开发应用程序的综合性开发环境。但是它对界面设计却并不是很友好,需要开发人员自行手动编写XML布局文件,这会导致开发效率低下。那么,

2023-12-08
Android流式布局详解

2023-05-19
Android Studio中ImageView的常见用法举

一、常规用法 在Android Studio中,总的来说,ImageView就是用来显示图片的控件。如果你想要显示一张图片,首先需要将图片放入到项目的res/drawable文件夹下。然后,设置Ima

2023-12-08
android的js框架(android js引擎)

本文目录一览: 1、Android真的推荐用MVI模式?MVI和MVVM有什么区别? 2、在Android上怎样实现JAVA和JS交互 3、android 混合开发 用什么框架好 4、Android如

2023-12-08
提升用户体验的Android Spinner样式设计

2023-05-14