Template Method Pattern: defines the skeleton of an algorithm in a method, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.
准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模版方法模式的用意。
This pattern is all about creating a template for an algorithm. It;s a method that defines an algorithm as a set of steps. Some steps are concrete, some are abstract.
public abstract class Template {
protected final void TemplateMethod() {
primitiveMethod();
concreteMethod();
hook();
}
protected abstract void primitiveMethod1();
protected final void concreteMethod() {
//do something
}
protected hook() {}
}A hook is a method that is declared in the abstract class, but only given an empty or default implementation. So subclass can either use the default method or override the hook method.
Design Principle:
Hollywood Principle: Don't call us, we'll call you.
Allow low-level components to hook themselves into a system, but the high-level components determine when they are needed, and how.
本文介绍了模版方法模式的概念、原理及应用,通过准备一个抽象类并将其部分逻辑实现为具体方法和构造子,同时声明抽象方法迫使子类实现剩余逻辑,展示了不同子类如何以不同方式实现这些抽象方法,实现算法的结构不变而逻辑可定制。文章深入探讨了好莱坞原则在模式中的体现,并强调了低级别组件如何与高层级组件交互而不受限制。
1812

被折叠的 条评论
为什么被折叠?



