Ich habe folgendes Szenario:php abstrakte Klassen und Schnittstellen
abstract class Contractor {
// Generic contractor methods...
}
abstract class PrivatePerson extends Contractor {
// Adds methods specific to private contractors
}
abstract class Company extends Contractor {
// Adds methods specific to Company contractors
}
class CustomerPrivate extends PrivatePerson {
// Customers that are contractors, but physical persons
}
class CustomerCompany extends Company {
// Customers that are contractors, but companies
}
Und das gleiche geschieht mit Lieferanten und Händlern, die Privatpersonen oder Unternehmen sein kann. Das Problem ist nun das folgende: Wie kann man das Objekt der Klasse CustomerPrivate und CustomerCompany gleichzeitig von der Klasse Customer (die ich noch nicht definiert habe) erzwingen und das gleiche für Lieferanten und Händler. Es ist eine gute Praxis, in einem solchen Fall Schnittstellen zu verwenden?
interface Customer {
}
class PrivateCustomer extends PrivatePerson implements Customer {
// Customers that are physical persons, but are CUSTOMERS!
}
Danke für jeden Vorschlag!
Aber wie können Objekte der Klasse CustomerPrivate gleichzeitig Instanzen des Kunden sein? Wie soll ich dann die Klasse Kunde definieren? – mlattari
Vielen Dank! Sie haben mir sehr geholfen. – mlattari
Ich habe es mit Eigenschaften versucht, aber es löst teilweise durch Problem. Ich kann die Eigenschaften und Methoden in den Eigenschaften für die Objekte verwenden, aber die Objekte sind keine Instanzen der Eigenschaften .... Mit Schnittstellen habe ich die umgekehrte Situation ;-) – mlattari