# gupaoedu-vip-pattern-template **Repository Path**: lichaoying/gupaoedu-vip-pattern-template ## Basic Information - **Project Name**: gupaoedu-vip-pattern-template - **Description**: java架构师_设计模式_模板模式 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-01-08 - **Last Updated**: 2022-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java架构师-设计模式-模板模式 --- ## 模板模式:***流程标准化,自己实现定制*** spring 可参考 InstantiationStrategy Rou --- # 应用场景 > 1、我们平时办理入职流程填写入职登记表-->打印简历-->复印学历-->复印身份证-->签订劳动合同-->建立花名册-->办理工牌-->安排工位等; 再比如,我平时在家里炒菜:洗锅-->点火-->热锅-->上油-->下原料-->翻炒-->放调料-->出锅; 再比如赵本山问宋丹丹: “如何把大象放进冰箱?” 宋丹丹回答:“第一步:打开冰箱门,第二步:把大象塞进冰箱,第三步:关闭冰箱门”。 赵本山再问:“怎么把长劲鹿放进冰箱?”宋丹丹答:“第一步:打开冰箱门,第二步:把大象拿出来,第三步:把长劲鹿塞进去, 第四步:关闭冰箱门”(如下图所示),这些都是模板模式的体现。。 ![QQ截图20190614154956.png-317.8kB][1] 模板模式通常又叫模板方法模式(Template Method Pattern)是指定义一个算法的骨 架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结 构的情况下,重新定义算法的某些步骤,属于行为性设计模式。模板方法适用于以下应 用场景: 1、一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。 2、各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。 我们还是以咕泡学院的课程创建流程为例:发布预习资料-->制作课件 PPT-->在线直播--> 提 交 课 堂 笔 记 --> 提 交 源 码 --> 布 置 作 业 --> 检 查 作 业 。 [1]: http://static.zybuluo.com/countryday163/0eo1e1rrvudreweby1nwd53m/QQ%E6%88%AA%E5%9B%BE20190614154956.png ## 优点 1、利用模板方法将相同处理逻辑的代码放到抽象父类中,可以提高代码的复用性。 2、将不同的代码不同的子类中,通过对子类的扩展增加新的行为,提高代码的扩展性。 3、把不变的行为写在父类上,去除子类的重复代码,提供了一个很好的代码复用平台, 符合开闭原则 ## 缺点 1、类数目的增加,每一个抽象类都需要一个子类来实现,这样导致类的个数增加。 2、类数量的增加,间接地增加了系统实现的复杂度。 3、继承关系自身缺点,如果父类添加新的抽象方法,所有子类都要改一遍。 模板方法模式比较简单,相信小伙伴们肯定能学会,也肯定能理解好!只要勤加练习, 多结合业务场景思考问题,就能够把模板方法模式运用好。