Classes maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

Dynamische Oracle/APEX Ontwikkelaar in de logistie

Bedrijfsomschrijving De organisatie in de regio Rotterdam is gespecialiseerd in het ontwikkelen van moderne webbased software voor de ERP branche. In totaal is er 20FTE aan specialisten actief binnen de organisatie. De ICT afdeling bestaat momenteel uit 15FTE. Ze groeien ontzettend hard en daarom zoeken zij een Oracle/APEX Developer die het reeds sterke team nog sterker komt maken. Hier werken ze op projectbasis voor verschillende grote organisaties in de logistieke sector. Het is een informele organisatie waarbinnen een fijne werksfeer heerst. Zoals aangegeven willen ze het team nog sterker maken en daarvoor zoeken ze bij voorkeur medior of senior Oracle/APEX

Bekijk vacature »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Capelle aan den IJssel zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je

Bekijk vacature »

Medior .NET Ontwikkelaar

In het kort Als .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging graag met

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »

C# ontwikkelaar

Functie omschrijving Werk jij graag met C# en het .NET framework in een leuk familiebedrijf? Lees dan snel verder! Jouw takenpakket hierbij is: Je gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Je gaat werken in een Microsoft omgeving (ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Daarnaast optimaliseer je de bestaande software. Bedrijfsprofiel Deze organisatie is gevestigd in de omgeving van Best en is een echt familiebedrijf. Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met

Bekijk vacature »

Embedded Developer C++

Functie omschrijving Ben jij op zoek naar een leuke uitdaging als Embedded Developer, zoek dan niet verder! Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een Embedded Developer die graag met Embedded Devices werkt. Je zult verantwoordelijk worden voor het ontwikkelen en onderhouden van diverse producten. Jouw specialisatie ligt op het vlak van software, hardware en back-end. Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen

Bekijk vacature »
Johan Rombouts

Johan Rombouts

20/02/2015 22:24:20
Quote Anchor link
Hoi iedereen,

Ik ben nu al een tijdje bezig met me te verdiepen in OOP en Classes maken e.d.
Ik heb al menig tutorial bekeken en ook al wat werkends in elkaar gezet.
Maar ik begrijp niet goed wanneer je nu een class maakt of een class extend.
Even een voorbeeld:
Ik heb de volgende objecten:
- Artikelen (in dit geval een product)
- Onderdelen (artikel bestaat uit 1 of meer onderdelen)
- Materialen (onderdeel bestaat uit een bepaald materiaal van een bepaalde lengte)
- Bewerkingen (aan een onderdeel moeten 1 of meerdere bewerkingen worden gedaan)
- Pakbonnen (in een pakbon zitten 1 of meerdere artikelen)
- Facturen (in een factuur zitten 1 of meerdere pakbonnen)
Ik heb nog wel meerdere objecten maar laten we het hier even bij laten.
Even voor mijn beeldvorming: Is het nu de bedoeling dat ik van de bovenstaande objecten aparte classes maak? Of is het beter om bijvoorbeeld te zeggen dat onderdeel een child (extend) is van artikel?

Kan mij iemand een aanzetje geven?
Alvast bedankt.
Gewijzigd op 20/02/2015 22:25:17 door Johan Rombouts
 
PHP hulp

PHP hulp

19/04/2024 15:48:42
 
Wouter J

Wouter J

20/02/2015 23:56:55
Quote Anchor link
Extend is geen child/parent relatie in de vorm van een boomdiagram.

Er zijn in OO 2 relaties die je goed moet onthouden:
* IS_EEN
* HEEFT_EEN

Bij bijv. een webshop van een boekenwinkel kun je zeggen "een Boek IS_EEN Artikel". Je kan ook zeggen "een Boekenwinkel HEEFT_EEN Boek" (meerdere boeken, maar ten minste 1 boek). Je kunt niet zeggen "Een Boekenwinkel IS_EEN Boek" of "een Boek HEEFT_EEN Artikel" (tenzij je Artikel een andere betekenis geeft).

De IS_EEN relatie is degene waar je extend gaat gebruiken. Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
class Artikel
{
    // ... je kan je afvragen in hoeverre een artikel code heeft, een interface is wellicht beter
}

class Boek extends Artikel
{
}

?>


De HEEFT_EEN relatie duid een property aan die een andere class bevat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
class BoekenWinkel
{
    private $boeken = array();

    public function heeftBoek(Boek $boek)
    {

        $this->boeken[] = $boek;
    }
}


$hetWinkeltjeOpDeHoek = new BoekenWinkel();
$hetWinkeltjeOpDeHoek->heeftBoek(new Boek('Head First Design Patterns'));
$hetWinkeltjeOpDeHoek->heeftBoek(new Boek('Zomerhuis met Zwembad'));
?>


De meest gebruikte fout is het teveel gebruiken van extend. In heel veel gevallen kun je extend vervangen door een andere oplossing, die vaak veel flexibeler en correct is dan een extend. Je zou bijv. kunnen zeggen "een Admin IS_EEN User", maar als je echt naar het verschil tussen een Admin en een User kijkt dan zul je zien dat eigenlijk alleen zijn rechten anders zijn. Hetzelfde geld voor "een Moderator IS_EEN User". Daarom zou het in zo'n geval beter zijn om 1 User class te hebben, die een property "rechten" (roles) heeft, waarin staat wat ie mag en niet mag. Of beter, dat de user een groep krijgt en een andere class bepaald of die groep iets wel of niet mag.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/02/2015 00:54:50
Quote Anchor link
Wouter heeft het weer eens heel erg goed verwoordt en toch is het heel erg moeilijk om bij mensen die deze vraag stellen het kwartje te laten vallen dus waag ik nog een poging:

Als je een class schrijft die een andere class extend neem je in eerste instantie alle functionaliteiten over van de onderliggende class.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
class A
{
    public function sayHello()
    {

        return 'Hello';
    }
}


class B extends class A
{
    // to do
}
?>


class B heeft nu EXACT dezelfde functionaliteit als class A.
Nu kunnen we deze gaan veranderen door methods (functies) te gaan overschrijven of door methods of properties (variabelen) er aan toe te voegen. We kunnen dus een 'uitgebreidere' versie van class A gaan maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
class A
{
    public function sayHello()
    {

        return 'Hello';
    }
}


class B extends class A
{
    // uitbreiding op class A
    public function sayBye()
    {

        return 'Bye';
    }
}

?>


Vanaf nu heeft class B twee methods:
- sayHello() en
- sayBye()

Maar wanneer gebruik je dit nou? Eigenlijk alleen maar als je praat over soorten.
Ik kan zelf maar een paar voorbeeldjes noemen waarvan ik er hier één noem:

De validator
Als we een formulier maken en de gebruiker kan een aantal velden invullen dan willen we deze velden vaak valideren. Bijvoorbeeld als er een veld 'mailadres' in het formulier is dan willen we controleren of de ingevulde tekst wel voldoet aan een geldig mailadres. Een ander voorbeeld is een veld 'aantal'. Hier verwachten we uitsluitend een numerieke waarde. Hierop willen we dit veld tevens controleren (of valideren).

Zo zou je dan een basismodel validator kunnen maken. We noemen dit dan ook wel de baseclass. Daarnaast zou je van alle soorten validators een class kunnen aanmaken die de standaard functionaliteit van de baseclass overneemt door deze te extend-en:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
class Validator
{
    public function validate($content)
    {

        return TRUE;
    }
}


class EmailValidator extends Validator
{
    // overschrijf de functie validate van de baseclass 'Validator'
    public function validate($content)
    {

        return filter_var($content, FILTER_VALIDATE_EMAIL);
    }
}


class NumericValidator extends Validator
{
    // overschrijf de functie validate van de baseclass 'Validator'
    public function validate($content)
    {

        return is_numeric($content);
    }
}

?>


In alle andere gevallen kun je beter de HEEFT-EEN gebruiken waar Wouter al over schreef. Voorbeeld:

Een klant heeft een postadres maar ook een afleveradres
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
class Address
{
    private $street;
    private $postcode;
    private $city;
    
    public function setAddress($street, $postcode, $city)
    {

        $this->street = $street;
        $this->postcode = $postcode;
        $this->city = $city;
    }
}


class Customer
{
    private $postaddress;
    private $deliveraddress;
    
    public function setPostaddress(Address $address)
    {

        $this->postaddress = $address;
    }

    
    public function setDeliveraddress(Address $address)
    {

        $this->deliveraddress = $address;
    }
}

?>
Gewijzigd op 21/02/2015 01:01:32 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.