Design Patterns

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

JAVA Programmeur

Bedrijfsomschrijving Functieomschrijving We zoeken per direct enthousiaste software engineers die ons team komen versterken.We werken in DevOps teams met een sterk gevoel voor verantwoordelijkheid. Er wordt nauw samengewerkt met ons Business analyse team (BAT), met onze uitvoerende medewerkers en met de DevOps teams onderling binnen het domein. Het liefst hebben we veel en vaak interactie met onze interne en externe eindgebruikers om zo de juiste dingen te maken. We werken multidisciplinair in een dynamische omgeving. Achtergrond opdracht De Businesseenheid Examens is verantwoordelijk voor de logistiek van de staatsexamens Voortgezet (speciaal) onderwijs, Nederlands als 2e taal en schoolexamens. In het kader

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core 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

Bekijk vacature »

Frontend Developer - Leeuwarden

Frontend Developer – Leeuwarden Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider

Bekijk vacature »

Junior .NET developer

Functie Wij zijn bezig met het ontwikkelen van een nieuw product en wij hebben jouw hulp hierbij nodig! Als junior .NET ontwikkelaar krijg jij de kans om samen met ons deze nieuwe uitdaging aan te gaan! Momenteel bestaat ons team uit drie interim Software Engineers. Twee hiervan zijn zeer ervaren .NET specialisten die inmiddels hun strepen in dit vakgebied al hebben behaald. Ook hebben wij een junior als onderdeel van ons team die zich op dit moment nog bezig houdt met de Front-end (Angular/TypeScript), maar zich nu ook meer gaat verdiepen in de backend. Wij willen ons team graag verder

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Klein team zoekt grote fullstack .NET developer to

Bedrijfsomschrijving Deze werkgever is marktleider in de Benelux en is Europees ook al aardig aan de weg aan het timmeren. Ze voorzien technische winkels van apparatuur om producten een langer leven te geven. Hiermee reduceren ze flink wat CO2 uitstoot en dat is natuurlijk goed voor iedereen! IT speelt een belangrijke rol in de bedrijfsvoering en de applicaties zijn van goed niveau. Als fullstack .NET developer ga jij je bijdrage leveren aan het verder verbeteren van de applicaties en de interne processen. Ze zijn nu met ruim 50 medewerkers in totaal en de afdeling development bestaat uit een 5tal developers.

Bekijk vacature »

C# .NET Developer

Dit ga je doen Je richt je op het doorontwikkelen en herstructureren van het platform; Je werkt in teamverband en zelfstandig aan uitdagende projecten voor verschillende klanten; Softwareontwikkeling middels C# .NET; Je staat in contact met verschillende opdrachtgevers om de klantwensen te bespreken en deze vervolgens te ontwikkelen; Verbeteren van bedrijfsprocessen; Implementaties. Hier ga je werken Als .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet

Bekijk vacature »

C# .NET Developer IoT SQL Server

Samengevat: Wij ontwikkelen innovatieve oplossingen om apparaten en bezittingen op een eenvoudige en flexibele manier te beveiligen. Ben jij een C# .NET developer? Heb jij ervaring met C# en SQL server? Vaste baan: C# .NET Developer IoT HBO €3.200 - €4.500 Deze werkgever is gespecialiseerd in hoogwaardige GSM/GPRS alarm- en telemetrietechnologie. Met een eigen productlijn en klantspecifieke ontwikkelingen biedt deze werkgever oplossingen om op afstand te meten, melden, loggen en aansturen, ook op plaatsen zonder stroomvoorziening. Onze producten worden gekarakteriseerd door flexibiliteit in de configuratie, betrouwbaarheid en een extreem laag stroomverbruik. Zij werken voor MKB klanten. Deze werkgever heeft veel

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Back-End Web Developer

Als Back-End Web Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als Back-End Web Developer bij Coolblue? Als Back-End Web Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Als backend developer weet je de weg in PHP, kan je in Typescript een microservice op zetten of ben je bereid om dit te leren. Ook Web Backend Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen PHP

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer begint jouw dag na een bak koffie met een stand up. De vorderingen worden tijdens de stand up besproken en de doelen worden opgesteld waar jullie als team in de volgende sprint naartoe gaan werken. Onze backend is geschreven in .NET Core en onze Front-end in Angular. Bij ons ga jij dan ook Fullstack aan de slag. Jij wordt hier opgeleid om zelfstandig te kunnen programmeren en applicaties te kunnen implementeren. Er wordt op projectbasis gewerkt, dit bied leuke uitdagingen omdat elke klant een andere visie heeft over de applicatie die wij maken. Je gaat

Bekijk vacature »
Leander ---

Leander ---

24/03/2011 12:04:45
Quote Anchor link
Ik ben bezig om grip te krijgen op Design Patterns. Het lukt niet helemaal, dus vandaar dat ik hier op PHPHulp even een topic aan heb gemaakt. Om het voor me zelf duidelijk te maken, heb ik eerst een kleine omschrijving gemaakt van hoe het Decorator pattern werkt (daar ben ik op dit moment mee bezig).

Quote:
Het decorator patroon is een ontwerppatroon dat gebruikt wordt om functionaliteiten toe te voegen aan objecten. Dit is beter uit te leggen aan de hand van een UML diagram.

Afbeelding

AbcComponent is in dit geval de abstracte klasse die er voor zorgt dat iedereen die deze klasse extends, de functie Operation() moet implementeren. ComponentA en AbcDecorator extenden de hoofdklasse, AbcComponent, om invulling te geven in dit functie.

AbcDecorator heeft dat weer 2 subklasses onder zich die zorgen voor een extra stukje functionaliteit. Het kan zo zijn dat in het ene geval de klasse DecoratorA gebruikt wordt, en in het andere geval DecoratorB. Dit zorgt er dus voor dat er in beide gevallen er iets anders getoond/gedaan wordt.


Zit ik een beetje op de goede weg, of ben ik nog te oppervlakkig bezig? Ik ben al een hele tijd aan het zoeken en uitspitten, maar ik krijg de link niet helemaal goed.

(Waarom Decorator? Dat is nodig voor wat ik wil gaan maken (ja onderzocht)).

Ik ben ook nog bezig met Abstract Factory. Is het mogelijk om die te combineren met het Decorator pattern (en dat weer gecombineerd met het MVC model?)
Gewijzigd op 24/03/2011 12:05:44 door Leander ---
 
PHP hulp

PHP hulp

25/01/2025 17:14:34
 
Remco nvt

Remco nvt

24/03/2011 13:35:37
Quote Anchor link
Goed boek: http://my.safaribooksonline.com/book/software-engineering-and-development/patterns/0596007124

en dan in hoofdstuk 3 wordt decerator uitgelegd ;)
 
Leander ---

Leander ---

25/03/2011 13:23:25
Quote Anchor link
Bedankt, maar ik heb al een soortgelijk boek tot m'n beschikking. Ik wou alleen even peilen of ik een beetje op de goede weg zat en het decorator pattern begrijp.

Zit ik dus een beetje op de goede weg? Of begrijp ik het hele patroon verkeerd?
Gewijzigd op 25/03/2011 13:23:45 door Leander ---
 
Remco nvt

Remco nvt

25/03/2011 14:19:57
Quote Anchor link
Je bent op de goede weg :) De UML klopt.
Heb even wat PHP toegevoegd voor een uitwerking ;)

index.php:
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
include ('Beverage.class.php');
$drink = new Expresso();
$drink = new Mocha($drink);
$drink = new Sugar($drink);
echo 'Beschrijving : ' . $drink->getDescription();
echo '<br>';
echo 'Euro : '. $drink->cost();
echo '<br><br>';
$drink = new Expresso();
echo 'Beschrijving : ' . $drink->getDescription();
echo '<br>';
echo 'Euro : '. $drink->cost();
?>


Beverage.class.php
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php

abstract class Beverage {

    public $description = 'unknown';

    public function getDescription() {
        return $this->description;
    }


    public abstract function cost();
}


abstract class CondimentDecorator extends Beverage {
    public function getDescription() {
        parent::getDescription();
    }
}


class Expresso extends Beverage {

    public function  __construct() {
        $this->description = 'Expresso';
    }


    public function cost() {
        return 2;
    }
}


class Mocha extends CondimentDecorator {
    private $beverage;

    public function  __construct(Beverage $b) {
        $this->beverage = $b;
    }


    public function  getDescription() {
        return $this->beverage->getDescription() . ', Mocha';
    }


    public function cost() {
        return $this->beverage->cost() + 0.10;
    }
}


class Sugar extends CondimentDecorator {
    private $beverage;

    public function  __construct(Beverage $b) {
        $this->beverage = $b;
    }


    public function  getDescription() {
        return $this->beverage->getDescription() . ', Sugar';
    }


    public function cost() {
        return $this->beverage->cost() + 0.70;
    }
}

?>


Uitwerking:
Quote:
Beschrijving : Expresso, Mocha, Sugar
Euro : 2.8

Beschrijving : Expresso
Euro : 2


Had geen zin om alle classes in aparte bestanden te zetten ;)
Gewijzigd op 25/03/2011 14:21:38 door Remco nvt
 
Pim -

Pim -

25/03/2011 17:37:42
Quote Anchor link
eSpresso? ;)
Je kan CondimentDecorator ook nog een constructor geven.

Heb je hier toevallig nog een leuk voorbeeld 'in real life' van?
 
Remco nvt

Remco nvt

25/03/2011 19:06:57
Quote Anchor link
mmmh, dat is een slordigheidje inderdaad die typefout.

Je kan denken aan een kassa systeem om inderdaad toevoegingen.
De JAVA I/O stream implementation is een decorator pattern.
Of het gebruiken voor je gegevens aan te passen. Dus je string o.i.d.
 
Leander ---

Leander ---

27/03/2011 18:48:58
Quote Anchor link
De UML is trouwens niet van mij, ik gebruikte hem enkel om te kijken of ik het Decorator patroon een beetje snapte.

Voor de rest, bedankt van je PHP voorbeeld code. Helpt zeker wel om het beter te begrijpen. Ik zal het even goed gaan bestuderen.
 
Anny php

anny php

28/04/2011 12:21:34
Quote Anchor link
Bedankt voor het delen van de mooie tutorial.
Sommige gratis php design patterns scripts die je kunt bekijken op de pagina:
http://www.phpkode.com/scripts/category/php-design-patterns/
 



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.