Pythonテンプレートメソッドモード

727 ワード

テンプレートメソッドモード.親クラスでステップの実行プロセスを決定し、子クラスでは実行プロセスの順序を変更できません.
class Template(object):
    def __init__(self):
        super().__init__()

    def do(self):
        self.do_first()
        self.do_second()
        self.do_thrid()

    def do_first(self):
        raise NotImplementedError

    def do_second(self):
        raise NotImplementedError

    def do_thrid(self):
        raise NotImplementedError


class ConcreteObj(Template):
    def do_first(self):
        print("first")

    def do_second(self):
        print("second")

    def do_thrid(self):
        print("thrid")


def main():
    obj = ConcreteObj()
    obj.do()


if __name__ == '__main__':
    main()