模板方法模式流程控制设计方案
模板方法模式的套路,蛮适合用在你有一套固定流程、但又想让某些环节灵活调整的场景里。比如一个前端构建流程,打包、压缩这些都固定,打包前的预你会变,那就可以用模板方法来搞定。核心是把流程骨架写在抽象类里,具体步骤交给子类去实现,灵活还不乱。
模板方法这种设计模式,挺像是前端框架的那种“生命周期钩子”机制。你先写好一个主流程,预留一些“钩子”,让别人想怎么扩展都行,不会破坏原有逻辑结构。
实际写代码的时候,一般是先搞个抽象类,里面写好流程顺序,比如loadData
、render
、bindEvents
。具体的逻辑留空,子类自己去实现这些步骤。这样一来,流程不乱,可变的地方又灵活。
有意思的是,抽象类里还可以写钩子方法,默认空实现,子类想用就重写,不用也没关系。像 Vue 的beforeMount
、mounted
,你可以理解成钩子的实际应用。
推荐你看看这些文章,讲得还蛮细:
如果你正好在写组件框架,或者做那种需要统一流程的功能模块,可以试试用模板方法模式封装逻辑,结构清晰、扩展性也强。
下载地址
用户评论