首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 封裝集合的最佳實踐

     編輯:Java 相關知識

對於一般成員變量,提供簡單的 getter/setter 封裝即可。但對於集合類,不能這樣做。

錯誤示範:直接暴露集合

class Athlete {
    private String name;
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

正確做法:集合封裝五步驟

  1. 初始化集合;
  2. 提供對單個元素的 add/remove;
  3. 提供加入另一個集合的方法(若基於此初始化,先確保當前集合無元素);
  4. getter 方法返回集合的只讀視圖;
  5. 提供當前集合大小方法。
public class Game {
    private Set<Athlete> players = new HashSet<Athlete>(); // 1

    public void addPlayer(Athlete one) { // 2
        players.add(one);
    }
    public void removePlayer(Athlete one) { // 2
        players.remove(one);
    }
    public void addPlayers(Set<Athlete> set) { // 3
        Iterator<Athlete> iter = set.iterator();
        while (iter.hasNext())
            addPlayer(iter.next());
    }
    public void initializePlayers(Set<Athlete> set) { // 3
        if (getAttendNumbers() > 0)
            players.clear();
        players.addAll(set);
    }
    public Set<Athlete> getAllPlayers() { // 4
        return Collections.unmodifiableSet(players);
    }
    public int getAttendNumbers() { // 5
        return players.size();
    }
}

這樣封裝可防止外部直接修改集合內容,保證資料一致性與封裝性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved