抽象类的应用知识:模板方法模式

什么是模板方法模式

使用场景说明:当系统中出现同一个功能多处在开发,而该功能中大部分代码是一样的,只有其中部分可能不同的时候。

模板方法模式实现步骤

1.把功能定义成一个所谓的方法模板,放在抽象类中,模板方法中只定义通用且能确定的代码。

2.模板方法中不能决定的功能定义成抽象方法让具体子类去实现。

案例

 

package Day221118;

public class StudentChild extends Student{

    @Override
    public String writeMain() {
        return "张星特是一位19岁的青年歌手";
    }
}
我的偶像作文1
package Day221118;

public class StudentMiddle extends Student{

    @Override
    public String writeMain() {
        return  "易烊千玺是一位21岁的影视歌全栖发展的艺人";
    }
}
我的偶像作文2
package Day221118;

public abstract class Student {
    //声明模板方法
    public void write(){
        System.out.println("\t\t\t\t《我的偶像》");
        System.out.println("斯为泰山而不骄,我们都是泰山!");
        //正文(每个子类都要写,但情况不同)
        //因此模板方法把正文部分交给具体的子类进行完成
        System.out.println( writeMain());

        System.out.println("我的偶像为我平淡的生活增添了色彩!");
    }

    public abstract String writeMain();
}
学生
package Day221118;

public class Test {
    public static void main(String[] args) {
        //目标:理解模板方法模式的思想和使用步骤
        StudentMiddle S=new StudentMiddle();
        S.write();

        System.out.println("----------------------------------------");

        StudentChild S2=new StudentChild();
        S2.write();
    }
}
TEST

 

 模板方法我们是建议用final修饰的,这样会更专业,那么为什么呢?

模板方法是给子类直接使用的,不是让子类重写的,一旦子类重写了模板方法,则模板方法就失效了,因此,加上final后可以防止子类重写了模板方法,这样更专业,安全。

模板方法解决了什么问题?

1.提高了代码的复用性

2.模板方法已经定义了通用结构,模板方法不能确定的部分定义成抽象方法,交给子类实现,因此,使用者只需关系自己需要实现的功能即可。

posted @ 2022-11-18 23:58  七喜7X  阅读(37)  评论(0)    收藏  举报