Um fabricante de aeronaves produz modelos turboélices
e turbofans. Para auxiliar os pilotos das aeronaves que fabrica, a empresa desenvolveu um software para checklist
de decolagem. A classe principal desse software é exibida
a seguir.
O checklist é composto de quatro etapas. As três primeiras, step01, step02 e step03, são comuns aos modelos
turboélices e turbofans, mas a quarta etapa depende do
tipo de propulsor.
Para criar um design flexível que dê suporte a outros modelos sem alterações no código existente, a equipe de
desenvolvimento definiu um método abstrato para o quarto passo. Ele deverá ser implementado pelas subclasses
de Checklist que implementem o quarto passo de acordo
com o propulsor usado. Por exemplo, a classe Turboelice
seria implementada da seguinte maneira:
public class Turboelice extends Checklist {
void step04( ) {
// código irrelevante para a questão
}
}
Desse modo, o checklist para turboélices seria executado
de acordo com o trecho de código a seguir:
Checklist c = new Turboelice();
c.check( );
Qual padrão de projeto foi empregado nesse design?