Categorías
Design Patterns Stories

Patrón de diseño de Java: método de plantilla

El patrón de diseño del Método de plantilla define el flujo de trabajo para lograr una operación específica. Permite que las subclases modifiquen ciertos pasos sin cambiar la estructura del flujo de trabajo.

El siguiente ejemplo muestra cómo funciona el patrón del método de plantilla.

Diagrama de clase

Código Java

Vehicle.java define un vehículo y funciona bien

package com.programcreek.designpatterns.templatemethod;
 
abstract public class Vehicle {
	//set to protected so that subclass can access
	protected boolean status;
 
	abstract void start();
	abstract void run();
	abstract void stop();
 
	public void testYourVehicle(){
		start();
		if(this.status){
			run();
			stop();
		}	
	}
}

Car.java subclase Vehículo y define métodos concretos

package com.programcreek.designpatterns.templatemethod;
 
public class Car extends Vehicle {
 
	@Override
	void start() {
		this.status = true;
	}
 
	@Override
	void run() {
		System.out.println("Run fast!");
 
	}
 
	@Override
	void stop() {
		System.out.println("Car stop!");
	}
}

Truck.java subclase Vehículo y define métodos concretos

package com.programcreek.designpatterns.templatemethod;
 
public class Truck extends Vehicle {
 
	@Override
	void start() {
		this.status = true;
	}
 
	@Override
	void run() {
		System.out.println("Run slowly!");
	}
 
	@Override
	void stop() {
		System.out.println("Truck stop!");
 
	}
}
  Patrón de diseño de Java: Fábrica

El método testVehicle solo acepta un Vehículo, no importa si es un coche o una camioneta, porque funcionarán de la misma forma. Este es un ejemplo de programa a interfaz (P2I).

import com.programcreek.designpatterns.templatemethod.Car;
import com.programcreek.designpatterns.templatemethod.Truck;
import com.programcreek.designpatterns.templatemethod.Vehicle;
 
public class Main {
	public static void main(String args[]){
		Car car = new Car();
		testVehicle(car);
 
		Truck truck = new Truck();
		testVehicle(truck);
	}
 
	public static void testVehicle(Vehicle v){
		v.testYourVehicle();
	}
}

Uso real del patrón de método de plantilla

Este patrón se utiliza en el objeto de acceso a datos (DAO) del marco de Spring. La clase org.springframework.jdbc.core.JdbcTemplate tiene todos los bloques de código repetidos comunes relacionados con el flujo de trabajo JDBC, como actualización, consulta, ejecución, etc.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *