基本上就是使用enum定義列舉時,使用implements實作介面,並實作介面定義的方法,就如同定義class時使用implements實作介面。
可以在實作Command的execut方法時,使用switch比對列舉實例,但其實可以有更好的作法,就是定義enum時有個特定值類別本體(Value-Specific Class Bodies)語法。
直接加上 {} 實作Command的execute方法,這代表每個列舉實例會有不同的execute實作,在職責分配上,比switch的方式清楚許多。
sealed介面的實作類別必須在同一套件中定義,並且必須使用final、non-sealed或sealed修飾,子介面必須在同一套件中定義,必須使用non-sealed或sealed修飾。
例如,有些語言允許函式傳回兩個值,有些開發者會用來傳回錯誤值與正確值,遇到這類函式,函式的呼叫者必須檢查傳回值,分別針對函式執行成功及失敗進行處理。
如果想在Java模擬這種效果,可以設計Either介面,因為只有錯誤與正確的可能性,可以使用sealded修飾Either介面,只允許有Left、Right兩個類別。