java中抽象方法和抽象类实现模版模式

来源:互联网 发布:淘宝的音乐背景怎么弄 编辑:程序博客网 时间:2024/05/17 22:14

实现模板模式有以下三个步骤:

1、在抽象类中,把固定的内容,存放到一个方法中(如final修饰的方法), 在该方法中,不确定部分,调用该抽象类中的抽象方法。

2、子类重写该抽象类的抽象方法。

3、声明抽象类引用指向具体实现的子类对象,通过抽象类引用.普通方法(或者直接new一个子类对象)。此时普通方法中的抽象方法真正执行的是该子类对象抽象后的内容。


下面通过代码来演示一下具体的实现方法

1、定义一个抽象类,里面包含固定的内容及调用不固定的抽象方法

package com.jcxy.demo05;public abstract class LoveGame{    //喜欢是共同的行为,但是表白的方式不一样    public final void loving()    {        System.out.println("喜欢上一个人,准备表白");                showLove();                System.out.println("表白成功!");    }    //表白方式    public abstract void showLove();}

2、Jack子类继承抽象类并实现抽象方法

package com.jcxy.demo05;public class Jack extends LoveGame{    //子类具体的表白方式    public void showLove()    {        // TODO Auto-generated method stub        System.out.println("写信表白");    }    }
3、Rose子类继承抽象类并实现抽象方法

package com.jcxy.demo05;public class Rose extends LoveGame{
    //子类具体的表白方式    public void showLove()    {        // TODO Auto-generated method stub        System.out.println("当面表白");    }    }

4、测试类

package com.jcxy.demo05;public class Test{    public static void main(String[] args)    {        //Jack的表白方式        LoveGame lg = new Jack();        lg.loving();                Jack j = new Jack();        j.loving();                //Rose的表白方式        LoveGame lg1 = new Rose();        lg1.loving();    }}



打印输出:

喜欢上一个人,准备表白
写信表白
表白成功!


喜欢上一个人,准备表白
写信表白
表白成功!


喜欢上一个人,准备表白
当面表白
表白成功!


从示例中可以看出,模板模式即是把共同的部分写在同一个方法中,不相同的部分写成抽象方法来让具体继承的子类来实现。这样的好处是既可以简化代码的书写,又可以实现方法的多样性。
0 0
原创粉丝点击