go-pattern-examples/behavior/05_template_method
2020-05-02 23:58:17 +08:00
..
README.md update README.md & order template_method pattern 2020-05-02 23:58:17 +08:00
templatemethod_test.go update README.md & order template_method pattern 2020-05-02 23:58:17 +08:00
templatemethod.go update README.md & order template_method pattern 2020-05-02 23:58:17 +08:00

模版方法模式

模版方法模式使用继承机制,把通用步骤和通用方法放到父类中,把具体实现延迟到子类中实现。使得实现符合开闭原则。

如实例代码中通用步骤在父类中实现(准备下载保存收尾)下载和保存的具体实现留到子类中,并且提供 保存方法的默认实现。

因为Golang不提供继承机制需要使用匿名组合模拟实现继承。

此处需要注意:因为父类需要调用子类方法,所以子类需要匿名组合父类的同时,父类需要持有子类的引用。