个性化阅读
专注于IT技术分析

模板模式

本文概述

模板模式说:“只需在操作中定义函数的框架, 然后将某些步骤推迟到其子类即可”。


好处

  • 重用代码是非常常见的技术, 这只是它的主要好处。

用法

  • 当应通过避免重复将子类之间的公共行为移至单个公共类中时使用。

模板模式的UML

模板模式

模板模式的实现

步骤1:

创建一个Game抽象类。

//This is an abstract class.
public abstract class Game {
	
	   abstract void initialize();
	   abstract void start();
	   abstract void end();
	
	   public final void play(){

	      //initialize the game
	      initialize();

	      //start game
	      start();
	      
	      //end game
	      end();
	   }
}// End of the Game abstract class.

第2步:

创建一个Chess类, 该类将扩展Game抽象类, 以为其方法提供定义。

//This is a class.

public class Chess extends Game {
     @Override
	   void initialize() {
	      System.out.println("Chess Game Initialized! Start playing.");
	   }
     @Override
	   void start() {
	      System.out.println("Game Started. Welcome to in the chess game!");
	   }
    @Override
	   void end() {
	      System.out.println("Game Finished!");
	   }
}// End of the Chess class.

第三步:

创建一个Soccer类, 该类将扩展Game抽象类, 以为其方法提供定义。

//This is a class.


public class Soccer extends Game {
	
	@Override
	   void initialize() {
	      System.out.println("Soccer Game Initialized! Start playing.");
	   }

    @Override
	   void start() {
	      System.out.println("Game Started. Welcome to in the Soccer game!");
	   }
	   
	@Override
	   void end() {
	      System.out.println("Game Finished!");
	   }
}// End of the Soccer class.

步骤4:

创建一个TemplatePatternDemo类。

//This is a class.
public class TemplatePatternDemo {

public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
		
	     Class c=Class.forName(args[0]);
	     Game game=(Game) c.newInstance();
	     game.play();	
	   }
}// End of the Soccer class.

输出:

模板模式
赞(0)
未经允许不得转载:srcmini » 模板模式

评论 抢沙发

评论前必须登录!