Duvida sobre Servlet

estou estudando apostila JavaWeb da Caelum e possuo algumas duvidas.

Pelo que entendi:
Criei uma ServletControladora que é a classe: ControllerServlet

OBS: Não entendi bem essa interface Logica e uma Classe que implementa Logica. Alguém poderia me ajudar nisso?

package br.com.triadworks.todoList.mvc.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.triadworks.todoList.logica.Logica;

@WebServlet("/mvc")
public class ControllerServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String parametro = request.getParameter("logica");
		String nomeDaClasse = "br.com.triadworks.todoList.logica." + parametro;

		try {
			Class classe = Class.forName(nomeDaClasse);
			Logica logica = (Logica) classe.newInstance();
			String pagina = logica.executa(request, response);
			request.getRequestDispatcher(pagina).forward(request, response);
		} catch (Exception e) {
			throw new ServletException("A lógica causou uma exceção!", e);
		}
	}
}



package br.com.triadworks.todoList.logica;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface Logica {

	String executa(HttpServletRequest request, HttpServletResponse response) throws Exception;
}




package br.com.triadworks.todoList.logica;

import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.triadworks.todoList.dao.TarefaDAO;
import br.com.triadworks.todoList.model.Tarefa;

public class AdicionaAlteraTarefaLogic implements Logica {

	@Override
	public String executa(HttpServletRequest request, HttpServletResponse response) {

		Integer id = Integer.parseInt(request.getParameter("id"));
		String data = request.getParameter("data");
		String descricao = request.getParameter("descricao");
		Calendar dataTarefa = Calendar.getInstance();

		try {

			Date dataconvertida = new SimpleDateFormat("dd/MM/yyyy").parse(data);
			dataTarefa.setTime(dataconvertida);

			Tarefa tarefa = new Tarefa();
			tarefa.setDescricao(descricao);
			tarefa.setData(dataTarefa);

			TarefaDAO dao = new TarefaDAO();

			if (id != null) {
				tarefa.setId(id);
				dao.atualizaTarefa(tarefa);
			}else{
				dao.atualizaTarefa(tarefa);
			}

		} catch (ParseException | SQLException e) {
			e.printStackTrace();
		}
		return "mvc?logica=ListarTarefaLogic";
	}
}