Considere o seguinte trecho de um diagrama de classes UML que modela um sistema de administração escolar.

O seguinte trecho de código em VB.NET utiliza as classes do diagrama acima. As linhas de código estão numeradas para delimitá-las quando aparecem em múltiplas linhas por questões de espaço.
1 Public Class UserClass
2 Shared Function GetSchoolUser(ByVal _login As String) As SchoolUser
3 If _login = "diretor" Then
4 Return New SchoolPrincipal
5 ElseIf _login = "professor" Then
6 Return New SchoolTeacher
7 Else
8 Throw New Exception
9 End If
10 End Function
11 End Class
Dentre as alternativas a seguir, assinale aquela que indica o design pattern usado no código apresentado.