Multiple class extends

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

Full stack developer Python, React

Functie Jij als full stack developer komt binnen onze Technology afdeling te werken. Deze bestaat momenteel uit 15 man. De stack waarmee wij werken is voornamelijk Python, Javascript, React en GraphQL. Binnen deze afdeling wordt er met multidisciplinaire teams gewerkt aan verschillende projecten. Projecten duren vaak langer dan 3 maanden en je bent van begin tot eind vaak betrokken. Naast dat je als full stack ontwikkelaar aan de slag gaat ben je ook Consultant. Dit betekent dat je ook klantcontact hebt in je rol en werkshops geeft. De verhouding tussen deze werkzaamheden zijn ongeveer 70% development en 30% consultancy. Een

Bekijk vacature »

Java Developer

Functie Wat ga je doen als Java developer? Jij komt terecht binnen een informeel team waarin je verantwoordelijk bent voor de backend systemen voor grote klanten als Ziggo en KPN. Als Medior Java developer werk je in teamverband en soms individueel. Gedurende de werkweek zal je veelvuldig sparren met je collega’s voor een goede implementatie van de software. Ben jij een echte Java developer? Ben je geïnteresseerd in de nieuwste technieken en de laatste ontwikkelingen? Dan ben je hier aan het juiste adres! Eisen Wat wordt er van jou verwacht? • Minimaal HBO/WO denk- en werkniveau; • Analytisch sterk, open

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Medior Java developer

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 »

Senior Mobile Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Mobile Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Front-end Developer

Do you want to work with the latest technologies on the development of new systems and applications? Create elegant interfaces using VueJS for thousands of users? Get moving and strengthen Nederlandse Loterij as a Front-end Developer. Thanks to your efforts, our services are always presented in style. As a Front-end Developer you are responsible for website development and improving customer experience based on data analyze. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Front-end Developer you score by: Writing elegant, testable components without side-effects to provide functionality to the users Website development, adding

Bekijk vacature »

Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Software Developer je verantwoordelijk voor: - Je werkt voortdurend aan oplossingen voor het op afstand bewaken en besturen van oogstmachines; - Het visualiseren van gegevens in rapporten, apps of andere formaten; - Voorspellend machineonderhoud; - Taakplanning; - Je schrijft aangepaste plug-ins om gegevens te importeren of exporteren

Bekijk vacature »

Senior SQR Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13333 Introductie Are you passionate about contributing to the world's most advanced machines. Do you thrive in a challenging environment working with highly motivated and skilled teams? If so, we have the perfect opportunity for you! We are seeking a Senior Software Design Engineer for Sequence Tooling to play a critical role in creating and maintaining mission-critical software applications. In this role, you will focus on achieving maintainable software architecture that is transparent and easy to extend while maintaining a strong focus on software quality. You will work closely with

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

C# Developer

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Door middel van ASP.NET, MVC Framework en C# ga je webshops, websites en webapplicaties ontwikkelen. Je zorgt voor de optimalisatie van bestaande software en de automatisering van bedrijfsprocessen. Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Bedrijfsprofiel

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Voor een opdrachtgever in omgeving Delft zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

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

06/10/2024 14:06:06
 
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.