MB: Interfaces ohne Inhalt für Logik?

Beitrag lesen

moin,

Interfaces schreiben vor, welche Methoden man zu implementieren hat. Ist es geläufig, ein Interface zu implementiert mit der Absicht eine Merkmal zur Unterscheidung zu erschaffen?

interface PersonInterface {}



interface WorkerInterface extends PersonInterface {}

interface CustomerInterface extends PersonInterface {}

interface EmployerInterface extends PersonInterface {}



class WarehouseCustomer implements CustomerInterface
{
  // code
}

class WarehouseServer implements WorkerInterface
{
  // code
}

class WarehouseOwner implements EmployerInterface
{
  // code
}


function determinePerson ( PersonInterface $person ) : int {
  if ( $person instanceOf CustomerInteface ) {
    return 1;
  } elseif ( $person instanceOf WorkerInteface ) {
    return 2;
  } elseif ( $person instanceOf EmployerInteface ) {
    return 3;
  }
  // no person
  return 0;
}

Meines wissens ist das nicht Sinn der Interfaces. Aber ist das eine Methode herr über die Problestelluhng zu werden?

class lgmb

--
Sprachstörung

akzeptierte Antworten