我学会了,模板方法模式

简介: 模板方法模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。

前言

模板方法模式属于行为型模式,这个类型的设计模式总结出了 类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,花式的去使用对象的行为来完成特定场景下的功能。

模板方法模式

使用场景:在定义特定功能模板的时候,可以使用这种模式,这种模式强制性的定义了功能接口,同时也让你可以在功能接口处进行扩展操作。这种模式强制性的定义了交互行为,你必须得按照模板的来。

理解:这是一种类、对象之间的经典交互方式,将类、对象的行为和使用解耦了,很实用,但需要根据业务需求好好设计。模板方法模式一般都是在模板方法类中实现一部分功能然后再定义一部分功能接口,然后通过继承的方式去实现这部分功能接口,从而达成复用扩展的目的。模板方法是一个编程技巧,得注重设计,要清楚哪部分需要在模板方法类中实现,哪部分需要在模板方法类中定义功能接口。

namespace action_mode_02 {

    // 模板方法类:进餐
    abstract class Dining {

        private diningBefore() {
            console.log(' ================= 用餐前 ================= ')
        }

        protected abstract dining(): void

        private diningAfter() {
            console.log(' ================= 用餐后 ================= ')
        }

        startEat() {
            this.diningBefore()
            this.dining()
            this.diningAfter()
        }

    }

    // 产品类 1:肯德基
    class KFC extends Dining {
        protected dining(): void {
            console.log('肯德基:喝可乐,吃汉堡薯条')
        }
    }

    // 产品类2:自助餐
    class Buffet extends Dining {
        protected dining(): void {
            console.log('自助餐:喝饮料,吃烤肉火锅')
        }
    }


    const kfc = new KFC()
    const buffet = new Buffet()

    kfc.startEat()
    buffet.startEat()
    
}
目录
相关文章
|
存储 前端开发 JavaScript
vuex项目实例
vuex项目实例
vuex项目实例
|
存储 监控 NoSQL
🍃MongoDB结合Koa2做用户登录验证
🍃MongoDB结合Koa2做用户登录验证
371 0
🍃MongoDB结合Koa2做用户登录验证
|
JavaScript
React.js中JSX的原理与关键实现
在开始开发之前,我们需要创建一个空项目文件夹
React.js中JSX的原理与关键实现
|
XML JSON 开发工具
API参考—实例管理—DescribeDBInstanceAttribute
调用DescribeDBInstanceAttribute接口查看实例的详细信息。
|
7天前
|
人工智能 运维 安全
|
5天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
607 21