目的

  • 簡單解釋單一職責原則( Single responsibility principle )程式範例

紀錄

假設有個手電筒應有以下功能

寫成介面應該如下

interface Flashlight
{
    // 開燈
    public function TurnOn();

    // 關燈
    public function TurnOff();

    // 電池相關
    public function Battery();
}

但如果需要修改電池相關的操作

就不能保證 TurnOn, TurnOff 不會被動到

如照 Single responsibility principle 應改成以下的樣子

interface Light
{
    // 開燈
    public function TurnOn();

    // 關燈
    public function TurnOff();
}
interface Battery
{
    // 電池相關
    public function Battery();
}
class Flashlight implements Light, Battery
{
    #code
}