go-pattern-examples/behavior/05_template_method
2020-05-03 19:33:29 +08:00
..
README.md update README in template pattern 2020-05-03 19:33:29 +08:00
template_method_test.go update README in template pattern 2020-05-03 19:33:29 +08:00
template_method.go update README in template pattern 2020-05-03 19:33:29 +08:00

模版方法模式

模板方法就是为了将方法和结构各自实现分开到不同的地方,并且可以单独实现,往往是将将方法/处理器的实现延迟到子类或者其他可注入的类型中。

模板方法就是设计的核心思想体现,如果把其他的模式都忘了,只要还记得一个模式,就能变化其他的任意模块,设计模式的作用要点就是要封装变化点,尽量降低耦合,方法,结构分离,接口继承,结构继承,都是为了将不同的变化点封装到不同的模块,以使其能够单独演化,尽量做到通用。

go 的结构对象和接口的分离做的更彻底,不需要像其他语言一样显式声明继承或者实现关系,所以在实现模板方法时候更灵活。

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