doc.dev1x.org

インターフェイス分離の原則

1. 原則

クライアントにクライアントが利用しないメソッドを強制してはならない

2. 根拠

クライアント側に無駄なコストを負担させることになる

3. 指針

4. 注意事項

参考資料

Appendix-1 インターフェイス分離の原則に違反するサンプル

class Program(metaclass=ABCMeta):
    @abstractmethod
    def execute(self):
        pass

    @abstractmethod
    def to_string(self):
        pass

    @abstractmethod
    def to_html(self):
        pass

class MyProgram01(Program):
    def __init__(self, value):
        self.value = value

    def execute():
        print(self.value)

    def to_string():
        return self.value

    def to_html():
        return "<b>{}</b>".format(self.value)
class Program(metaclass=ABCMeta):
    @abstractmethod
    def execute(self):
        pass

    @abstractmethod
    def to_string(self):
        pass

    @abstractmethod
    def to_html(self):
        pass

class MyProgram01(Program):
    def __init__(self, value):
        self.value = value

    def execute():
        print(self.value)

    def to_string():
        return self.value

    def to_html():
        pass

class MyProgram02(Program):
    def __init__(self, value):
        self.value = value

    def execute():
        print(self.value)

    def to_string():
        return self.value

    def to_html():
        pass