一、觀察者模式
觀察者模式是一種行為型模式,它定義了一種一對多的關係,讓多個觀察者對象同時監聽一個主題對象。當主題對象狀態發生改變時,會自動通知所有的觀察者對象,使它們能夠及時進行響應。在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/zh-hant/n/186347.html
微信掃一掃
支付寶掃一掃