设计模式:模板模式(学习笔记)

本文介绍了模板模式的基本原理,通过泡茶与泡咖啡的例子说明了如何在超类中定义一个算法的骨架,而将某些步骤留给子类实现。同时探讨了模板模式与策略模式的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模板模式原理(做框架):

形象举例:

        泡咖啡与泡茶的算法                    |              泡茶步骤:

                步骤一、水烧开                   |                    步骤一:水烧开

                步骤二、冲泡                       |                    步骤二:冲泡茶叶

                步骤三、放牛奶                    |                    步骤三:加柠檬

        将泡茶的步骤抽象成一个超类,每个方法在子类中实现。

        抽象冲泡步骤,放到超类中,步骤即是模板。

   

类图实现:

                           


模板模式:

                封装了一个算法步骤,并用许子类为一个或多个步骤方法提供实现。

                模板模式可以使子类在不改变算法结构的情况下,重新定义算法中的某些步骤。

通用类图:

                                                          

                     超类是抽象类,在抽象类中存在final的方法(不需要子类实现),也有需要实现的方法。


模板模式举例:

        数组中的模板:数组类之间的比较功能实现了Comparable接口,数组内置的sort模板,调用对象的Comparable。

        android中的模板:重写getCount()、getview()方法,BasAdapter,Activity的生命周期。

好莱坞原则:

           好莱坞原则的意义:

                            高层无需知道底层的细节,高层与底层解耦。(别调用我们,我们会调用你。)

           好莱坞原则与模板模式:

                            存在专门的一个对象,用于处理个对象之间的流程,子类只关注各自性化的东西。降低耦合度,提高扩展性。


模板模式关键点:

         分析异同点,发现相似处,梳理体系结构,在超类抽象出公共部分。

          模板模式函数的三种类型:

                        1、超类中实现的模板子类中不能修改。

                        2、实现个性化的方法,子类中实现。

                        3、超类中存在的可选个性化方法,子类中实现。

模板模式与策略模式的区别:

            模板模式封装(侧重)的是步骤,策略模式强调某一个方法或者功能。

            策略模式通过组合(接口委托方式),模板模式通过继承的方法实现。

            策略模式与模板模式可以互相结合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值