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

形象举例:

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

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

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

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

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

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

   

类图实现:

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


模板模式:

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

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

通用类图:

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

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


模板模式举例:

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

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

好莱坞原则:

           好莱坞原则的意义:

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

           好莱坞原则与模板模式:

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


模板模式关键点:

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

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

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

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

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

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

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

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

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

相关文章: