看起來像是 template method 不過在存取端一定會有相依性問題, 變成在 type erasure 或是 dynamic polym-orphism 之間做取捨你需要的是明確定義流程, 而其他重覆的程式碼都可以透過 CRTP 預先在 base class 定義好
https://wandbox.org/permlink/6lqqEHTxC7AHkT6V雖然 RAII 可以做到類似的功能, 但因為編譯器允許把dtor call 給 optimize 掉, 所以把 side-effect 放在dtor 裡完成是比較不保險的做法上面程式碼少加 virtual dtor 在 base 裡