S SmartDocs
シリーズ: Angelia java 26 行 · 更新日 2026-09-27

GuestList.java

Angelia/Java/Week_6_7/code/05_junit_tdd/GuestList.java

/**
 * 賓客名單介面:一個「集合」(set)語意的 ADT。
 *
 * 語意:一位賓客要嘛「會來」要嘛「不會來」;
 *       同一個人 add 兩次的效果,和 add 一次完全一樣。
 * 介面完全沒有規定要怎麼實作——這正是黑箱測試能「一份測試、多種實作」的原因。
 */
public interface GuestList {

    /** 記錄某位賓客會來。 */
    void add(String name);

    /** 記錄某位賓客不來了(若原本就不在名單上,什麼都不做)。 */
    void remove(String name);

    /** @return 該賓客目前是否會來 */
    boolean isComing(String name);

    /** @return 目前會來的賓客人數(不重複計算) */
    int count();

    /**
     * @return 目前會來的賓客名字(防禦性複製:呼叫者改這個陣列不會影響名單)
     */
    String[] coming();
}

関連記事