設計模式九 迭代器模式

迭代器模式:提供一種方法用來迭代集合中的數據並不破壞或者暴漏內部的結構

迭代器的使用場景很明顯:就是封裝遍歷

要對數據進行封裝遍歷的方式有兩種:

1)將數據結構返回給調用者進行遍歷

2)引用迭代器模式進行遍歷

迭代器模式的優點:

  • 數據安全:將數據結構封裝到了對象內部,外部無法對其進行操作;
  • 封裝遍歷:實現了Java提供的迭代器接口(泛型的),將迭代的步驟封裝成hasNext和next兩個函數

本例子應用場景:從用戶信息中讀取該用戶所擁有的菜單權限

定義菜單

@Data
public class Menu implements Serializable {

    private String menuName;

    private String id;
}

定義用戶BMS菜單

public class User implements Iterator<String> {

    private List<Menu> menuLists=new ArrayList<>();

    private int index;

    @Override
    public boolean hasNext() {
        return index<menuLists.size();
    }

    @Override
    public String next() {
        String name = menuLists.get(index).getMenuName();
        index++;
        return name;
    }

    public void setMenuLists(List<Menu> menuLists) {
        this.menuLists = menuLists;
    }
}

定義用戶APP菜單

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章