Multiple class extends

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Functie As a .NET developer you work together in a multidisciplinary development team with 1-2 Senior .NET developers, two front-end developers, Data Scientists and one UX designer. As a team you work on developing a Cloud based application and making this application more stable. Unit testing will also become very important in your new position. Together with the Senior .NET developer you will be responsible for developing the API. You work with a lot of data and occasionally there will also be data issues and some queries will have to be run. This means that you will work a lot

Bekijk vacature »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

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 »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Capelle ad Ijssel Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Een deel van jouw werkzaamheden: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps en Power BI.

Bekijk vacature »

Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »

Product Developer (M/F), Fulltime 40 h/week

A global Plantbased revolution – that is our dream. Maximising the protein transition – that is our mission. Producing and developing sustainable and delicious products – that is what we do. Ojah is a fast growing company with a mission and has the ambition to be the world leader in its field. To support this growth we are hiring new colleagues. People that would like to make a difference and dare to dream big. With currently a 150 colleagues proudly working on our exceptional products. Working in a dynamic surrounding that runs full speed ahead. We need you! Product Developer

Bekijk vacature »

Lead javascript developer Node.js React

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

Back end developer Python, PHP

Functie Jij als full stack ontwikkelaar zult komen te werken samen met 1 PHP ontwikkelaar een PO en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult voornamelijk (lees 75%) werken aan de roostersoftware. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere flexwerkers ingezet kan worden. Verder willen ze financiële koppelingen gaan maken

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Onderdelen van jouw functie: Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

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 »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

Bekijk vacature »

Full stack developer Node.js, React Remote

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

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

14/05/2024 16:23:22
 
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.