Guten Tag
Die Grundsätze von Klassen, Eigenschaften, Methoden und Objekten sind mir für einfache Beispiele klar.
Wie ist das aber bei einem grösseren Projekt für Organisationen, d.h. was sagt Ihr zu meinen Ueberlegungen?
1. Als oberste Klasse nehme ich: Organisation
2. Ist es möglich/sinnvoll die nächste Stufe "doppelt" zu fahren? = als Klassen und Eigenschaften. Denke eher nur an (Unterklassen), aber auch Variablen (je nach Organisation bestehen versch. Eigenschaften).
- Firma
- Verein
- Stiftung
- Genossenschaft
- usw.
3. Je nach Organisation gibt es anschliessend Branchen und Abteilungen (wo sich die gleiche Frage wie bei 2. stellt - und/oder irgendwann sind es Objekte.
Ich wäre dankbar, wenn Ihr mir als Anfänger helfen könntet, hier den richtigen Einstieg zu finden.
Freundliche Grüsse, Markus Schmid, Schweiz
OOP - Verwendung Klassen, Eigenschaften usw.
-
-
Guten Abend Markus,
hast Du dich schon mit Vererbung vertraut gemacht? In deinem Fall liegt es nahe, eine Klasse "Organisation" zu haben mit den Eigenschaften, die für alle gemeinsam sind, z. b. Name, Postanschrift, Rechtsform etc. Dann Unterklassen, die von dieser Klasse erben und weitere Eigenschaften haben, die für diesen Typ von Organisation jeweils spezifisch sind.
-
"Kommt immer drauf an".
Du kannst alles als Objekt behandeln, bis es keinen Sinn mehr macht.
Soll am Bsp. heißen:
Addresse - haben sie alle. Also gibts ein Objekt "Address", das im Object "Organization" genutzt wird.
Firma (company (name)) - hm, macht keinen Sinn, gehört zur Addresse. Ist also eine Eigenschaft der "Address".
Dann gibts mehrere Addressen ... z.B. Billing und Shipping (hier evlt. nicht das Thema) ...
also kann man eine "abstract Address" nutzen.
Sowas fällt einem auch mal später auf, wenn Du schon Code geschrieben hast - dann änderst Du das einfach.
Bsp.:
PHP
Alles anzeigenclass Organization { protected $billingAddress; protected $shippingAddress; public function setBillingAddress(BillingAddress $address) { $this->billingAddress = $address; return $this; } public function setShippingAddress(ShippingAddress $address) { $this->shippingAddress = $address; return $this; } } interface AddressInterface { public function getFirstName(); // ... public function toArray(); } abstract AbstractAddress implements AddressInterface { protected $company; // name protected $firstname; protected $middlename; protected $lastname; protected $postcode; protected $city; protected $region; protected $street; // array of multiple lines (additional info ect) // ... // or set all on a property "protected $data;" public function __construct(array $data) { // sets data ... } } class BillingAddress extends AbstractAddress { const TYPE = 'billing'; } class ShippingAddress extends AbstractAddress { const TYPE = 'shipping'; } $organization = new Organization(); $billingAddressArray = []; // some address data array loaded from db or so ... $organization->setBillingAddress(new BillingAddress($billingAddressArray))
Es kommt also wirklich immer darauf an.
Abr wie gesagt - oft bemerkt man das beim Schreiben.
Ich nehm einfach mal das Bsp. "Verein" -
erst ist es nur eine Property - ein String, der Vereinsnahme.
Später irgendwann merkst Du, dass Du da eine|mehrere Vereinsaddresse(n) hast|willst, ...
oder einen Vereinstyp ... usw ...
dann wird der Verein eben ein Object.
-
"Kommt immer drauf an".
Du kannst alles als Objekt behandeln, bis es keinen Sinn mehr macht.
Soll am Bsp. heißen:
Addresse - haben sie alle. Also gibts ein Objekt "Address", das im Object "Organization" genutzt wird.
Firma (company (name)) - hm, macht keinen Sinn, gehört zur Addresse. Ist also eine Eigenschaft der "Address".
Danke schon mal für die Antwort. Bei Firmen dachte ich an die versch. Eigenschaften - wie unterscheide ich Einzelfirmen, AG, GmbH... und je nach Branchen?
Vor allem stellt sich mir die Frage: Darf man mischen und kobinieren? Das heisst zum Beispiel: Firmen sind Klassen, Eigenschaften und Objekte? -
wie unterscheide ich Einzelfirmen, AG, GmbH... und je nach Branchen?
Naja, z.B. by Type. Z.B.protected $type;
Wenn es dann zw. AG und GmbH ect. große Unterschiede geben wird,
dann kannst Du Abstrakte Klassen verwenden (wenn es sich "lohnt").
Firmen sind Klassen, Eigenschaften und Objekte?
Verstehe die Frage nicht.
-
Firmen sind Klassen, Eigenschaften und Objekte?
Verstehe die Frage nicht.
Ich denke, eine Firma kann eine Klasse sein, aber auch eine Variable je nach Firmenstruktur und Branche - oder allenfalls Objekte.
Die Kernfrage ist eigentlich, kann man das mischen? -
Zitat
Firmen sind Klassen, Eigenschaften und Objekte?
Hast Du dich schon mit Klassen und deren Instanzen beschäftigt? Das ist hier gleich am Anfang ganz gut erklärt und beantwortet möglicher Weise einen großen Teil deiner Frage:
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!