go-pattern-examples/behavior/14_template_method
2020-04-21 22:53:23 +08:00
..
README.md init design pattern codes 2020-04-21 22:53:23 +08:00
templatemethod_test.go init design pattern codes 2020-04-21 22:53:23 +08:00
templatemethod.go init design pattern codes 2020-04-21 22:53:23 +08:00

模版方法模式

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

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

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

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