Multiple class extends

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

PHP developer

Functie Voor een opdrachtgever in omgeving Leiden zijn wij op zoek naar een PHP developer die affiniteit heeft met C++. Ben jij reeds afgestudeerd of heb je al een paar jaar ervaring? Lees snel verder en kijk of dit iets voor jou is! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Senior Full Stack developer

Bedrijfsomschrijving tbd Functieomschrijving Full Stack Java Development bij Randstad Groep Nederland (HQ) Er is een vacature in het Corporate Client Solutions (CCS) team. Dit team is met een ander team net begonnen aan het project ‘Grip op Inhuur’. Het doel van dit project is de tevredenheid van onze leveranciers te verhogen en de efficiëntie van onze administratie te verbeteren. Onderdeel daarvan is een ‘Mijn-omgeving’ voor ZZP’ers en leveranciers. Naast dit nieuwe project werkt het team ook aan het onderhoud en verbeteren van een digitaal vacature management systeem waarmee dagelijks vele vacatures worden voorzien. Het team ontwikkelt zo veel mogelijk zelf

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Software Developer C# .NET gezocht voor een dynamische organisatie! Ben jij net afgestudeerd of toe aan een volgende stap in je maatschappelijke carrière? Lees dan snel verder! Wij zijn op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die een organisatie in de regio Houten wil versterken. Je werkt in deze functie aan verschillende projecten en gaat vaak op bezoek bij klanten. In deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid verwachten. Bedrijfsprofiel Waar kom je te werken? Je komt te werken bij een organisatie dat gespecialiseerd is in

Bekijk vacature »

Gezocht: Ervaren VB6 developer met C# ambitie!

Bedrijfsomschrijving Dit bedrijf is een vooraanstaande softwareleverancier die gespecialiseerd is in het ontwikkelen van software pakketten voor autoschade herstel bedrijven. De software wordt gebruikt door meer dan de helft van alle autoschade herstel bedrijven in Nederland. Het team van professionals is op zoek naar getalenteerde collega developers die hun vaardigheden willen inzetten om het bedrijf te laten groeien. Functieomschrijving Voor dit bedrijf zoek ik een ervaren VB6 / VB.NET developer met interesse om op termijn verder te gaan in C#. In deze functie ben je verantwoordelijk voor het onderhouden van de bestaande softwarepakketten. Een deel van de code is nog

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

Fullstack of back-end PHP developer

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Front-end developer Consultancy in teamverband wer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers. Momenteel zijn ze op zoek naar een ervaren Front-end of Fullstack developer die samen met de consultants aan de slag gaat om de business requirements te vertalen naar technische oplossingen. Los van het finetunen van extenties, help je bij het configureren van bijvoorbeeld een mobiel bankieren app. Hierin ben je van A tot Z betrokken en zie je bijvoorbeeld ook toe op de uitvoering van testen. Je expertise wordt optimaal benut en je krijgt verschillende kansen om deze uit te breiden door met verschillende innovatieve technologieën aan

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

Full Stack Java ontwikkelaar

Functieomschrijving Voor de politie zijn wij op zoek naar een Full stack Java ontwikkelaar. Als ervaren full stack Java ontwikkelaar binnen de gewenste deadlines meewerken aan de totstandkoming van de gewenste werkzaamheden. Taken Upgraden van GeoServer, SOLR, Oracle Spatial database, Tomcat Migreren Oracle Spatial naar PostgreSQL/PostGIS Migreren SOLR naar ElasticSearch Geografische gegevens op het interne netwerk beschikbaar maken Doorontwikkelen en actualiseren van de geografische services Het up to date brengen van de CI/CD pipeline, samen met medewerkers die verantwoordelijk zijn voor de CI/CD tooling Aanspreekbaar op de solution architectuur en stemt die met collega's in het cluster Geo De opdracht

Bekijk vacature »
HaasOnline XX

HaasOnline XX

20/05/2007 17:58:00
Quote Anchor link
De titel zegt eigelijk al genoeg, ik wil een classe voorzien van een extends class. Dit is op zich geen probleem, maar is het ook mogelijk om een class te voozien van multiple extends. Eg zoals dit dus:
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
<?

class basic {

}


class input {


}


class main extends basic and input {


}


?>


Ik begrijp dat ik de classes achter elkaar wil hangen, maar er zijn situates waarbij ik geen classes wil laden die ik niet nodig heb.

Wie helpt?
 
PHP hulp

PHP hulp

13/06/2025 15:55:54
 
Danny K

Danny K

26/05/2007 00:34:00
Quote Anchor link
Is bij php niet mogelijk.
Dit wordt voor php te complex.
Ook zijn er dan veel dingen waar je rekening mee moet houden.
Bijvoorbeeld:
Welke constructor moet er gekozen worden? Die van "basic" of die van "input"?
Uiteraard ook die van "main", maar die roept dan weer de contructor van zijn parent aan.

Hiernaast wordt dan ook de engine van php te complex en beduidend langzamer.
 
Mebus  Hackintosh

Mebus Hackintosh

26/05/2007 00:47:00
Quote Anchor link
je kan in de klas basic ook weer een extend maken naar input...

Edit:
SplaakGeblek
Gewijzigd op 01/01/1970 01:00:00 door Mebus Hackintosh
 
Jelmer -

Jelmer -

26/05/2007 10:41:00
Quote Anchor link
Is main een basic & een input tegelijk? Met zo'n vraag vind ik bij mijzelf meestal waar de fout zit. Alleen extenden waneer iets een iets-anders is, anders gewoon 'composition' toepassen.

Composition is dat je simpelweg een instantie van de iets-anders klasse binnen je iets klasse gebruikt. Simpel voorbeeld. Een klasse 'spaak' extend de klasse 'wiel' niet. Een spaak is immers geen wiel, dus heeft ook niets aan de eigenschappen en methoden van een wiel. Maar de spaak heeft misschien wel een referentie naar de instantie van 'wiel' waar hij deel van uitmaakt, en andersom ook. 'wiel' heeft een array vol met instanties van 'spaken'. Zo zijn ze toch met elkaar verbonden en kan je ze prima gebruiken, zonder dat ze elkaar extenden.
 
Hipska BE

Hipska BE

26/05/2007 10:47:00
Quote Anchor link
ik denk dat dit een duidelijker voorbeeld is hoe je correcte extends maakt:

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 auto {

}


class Ford extends auto {

}


class Fiesta extends Ford {

}


?>

Zoals je ziet kan je enkel maar correct een klasse extenden als die ook hetzelfde is in grote lijnen.
 
Bluecherry

bluecherry

11/06/2007 16:03:00
Quote Anchor link
Hi,

hoewel de post misschien niet meer actueel is wil ik toch reageren.

Voor een project had ik namelijk een aantal interfaces; oa. Registry en Singleton.
Omdat ik een uniforme implementatie van Registry en Singleton wilde handhaven implementeerde ik deze patronen in abstracte classes.

Het was de bedoeling om een Settings en Session class te implementeren als een Registry (extends). Session moest ook een Singleton zijn dus zou logischerwijs Singleton extenden.

Mijn 'probleem' is dus dat ik ook SingletonRegistry moet implementeren, die ofwel extends Registry OF extends Singleton, maar die altijd redundante code zou bevatten (resp. Singleton OF Registry).

Sidenote: Ik had ook al gedacht aan Session extends Registry implements Singleton maar dat komt op hetzelfde neer. In mijn ogen is een class SingletonRegistry een elegantere oplossing.

Is er geen elegante manier om dit op te lossen? Ik *haat* redundant code... :D
 
Jelmer -

Jelmer -

11/06/2007 16:41:00
Quote Anchor link
Ik gebruik bij het implementeren van zo'n soort iets meestal eigenlijk gewoon een interface. Maar ja, dan zou je dus algemene functies die gelden voor die interface op meerdere plaatsen in je codebase hebben.

Een oplossing is composition. Middels de interface dwing je de methods die nodig zijn om bijvoorbeeld de Registery-implementatie mogelijk te maken (getValueForKey, setValueForKey etc.) en je dwingt een method getRegistery() af bijvoorbeeld. In je constructor maak je dan een instantie van een algemene registery-klasse, waarbij de constructor 1 argument slikt, een 'delegate' die de interface implementeert. Zo kan de instantie van de algemene registery-klasse zijn werk doen, en kan je hem benaderen middels [ImplementerendeKlasse]::getRegistery()

Resultaat is dat je het gedrag hebt afgedwongen middels een interface, dat je alle 'algemene' code in 1 klasse kan houden en dat je meerdere interfaces tegelijkertijd kan implementeren (zoals het hoort :))

Volgens mij maakt SPL er bij zijn ArrayIterator ook gebruik van zo'n soort manier.
 
Bluecherry

bluecherry

11/06/2007 17:22:00
Quote Anchor link
Verdorie, ik zat het echt té ver te zoeken :).

Je vorige post over compo sloeg ik al meteen over omdat ik het nut er in mijn geval niet van inzag, Session is een Registry én een Singleton dusja...

Jouw oplossing lost het probleem van redundante code op, wat toch het doel was.

Hieronder voorbeeldcode die bij de oplossing hoort, voor het geval iemand anders ooit hetzelfde probleem tegenkomt.

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
<?php
class Session extends Singleton implements IRegistry {
    
    private $registry = null;

    public function __construct() {
        // Importereer session en verwijder
        $this->registry = new Registry();
        // Sla session info op in registry
    }
    
    public function register($strKey) {
        if ($this->registry instanceof  Registry) {
            $this->registry->register($strKey);
        }
else {
            // Throw exception
        }
    }
    
    .....
    
}

?>


Maar wat als Registry aangepast wordt? Of eender welke andere uitbreiding van Singleton (staat bijna nooit op zichzelf)?

Dan zou ik dus ook de Session (of andere) implementatie moeten updaten. Nu wordt dit uiteraard wel afgedwongen door de interface IRegistry dus op zich geen probleem.

Maar 'voor de sport' ga ik een stap verder:

Een algemene implementatie, die er wrs een beetje over gaat. Gotta love overloading :D.

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
<?php
class CompositeSingleton extends Singleton {

    private $instance = null;

    public function __construct($className) {
        $this->$instance = new $className();
    }


    public function __call($function, $args) {
        if (method_exists($this->instance, $function)) {
            return call_user_func_array($this->instance->$function, $args);
        }
else {
            // throw Exception
        }
    }

}


class Session extends CompositeSingleton {

    public function __construct() {
        // Importeer sessie    
        parent::__construct("Registry");
    }
    
}

?>

Merk op dat Session niet langer de interface IRegistry implementeert... Er is dus geen enkele referentie meer naar de IRegistry interface of de Registry baseclass.



Thx voor de tip Jelmer!!

/edits: Formatting + foutjes + wat meer tekst :-*
Gewijzigd op 01/01/1970 01:00:00 door bluecherry
 



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.