首页 > Java > java教程 > 正文

Template

Linda Hamilton
发布: 2024-09-22 22:16:02
原创
616 人浏览过

Template

The template is one of the behavioral design patterns, an abstract class defines a set of ways/templates to execute its methods.

Its subclasses can override/implement these methods but the invocation is to be in the same way as defined by an abstract class

Let's understand this with an example:

Key concepts
Template: An abstract class defining the structure/way/template of the algorithm
Concrete Implementation: ConcreteImplementation of Template
Client: Client that will make use of this Template

public abstract class GameTemplate{
    //these below methods can be overridden based on the type of game
    public abstract void initialize();
    public abstract void startPlay();
    public abstract void  endPlay();

    //All the subclasses must use this same method to play the game i.e. following the same template present in this method,
    //Hence it is declared as final.
    public final void play(){
        initialize();
        startPlay();
        endPlay();
    }
}

public class Cricket extends GameTemplate{


    @Override
    public void initialize(){
        System.out.println("Cricket has been initialized");
    }
    @Override
    public void startPlay(){
        System.out.println("Cricket game has been started");
    }
    @Override
    public void endPlay(){
        System.out.println("Cricket game has ended");
    }

}

public class Football extends GameTemplate{

    @Override
    public void initialize(){
        System.out.println("Football has been initialized");
    }
    @Override
    public void startPlay(){
        System.out.println("Football game has been started");
    }
    @Override
    public void endPlay(){
        System.out.println("Football game has ended");
    }

}

public class Main{
    public static void main(String args[]){

        //Create a football game object 
        GameTemplate football = new Football();
        football.play();// play() will strictly follow the sequence of method execution defined in the final play() method

        GameTemplate cricket = new Cricket();
        cricket.play();
    }
}

登录后复制

Output:

Football has been initialized
Football game has been started
Football game has ended
Cricket has been initialized
Cricket game has been started
Cricket game has ended
登录后复制

note: The code follows all the design principles like LSP, ISP, SRP, OCP

以上是Template的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板