Design Patterns

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

Software Ontwikkelaar

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 »

Applicatiebeheerder/ Ontwikkelaar

Dit ga je doen - Verantwoordelijkheid dragen voor het complexe applicatielandschap; - Schakelen met eindgebruikers en leveranciers; - Verdeling in werkzaamheden tussen dagelijks beheer ontwikkelen; - Het analyseren van de behoeften van gebruikers en het vertalen hiervan naar functionele specificaties voor de applicaties; - Actief bijdragen aan het leveren van passende oplossingen voor het applicatielandschap. Hier ga je werken Deze organisatie, gevestigd in de regio van Amsterdam is een van de meest toonaangevende mediaorganisaties in Nederland. Door de organisatiecultuur krijg jij veel ruimte om initiatief te nemen en zelfstandig aan het werk te gaan. Samen met het IT team zorg

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

OutSystems Developer

Dit ga je doen Het van scratch af aan ontwikkelen van applicaties met OutSystems; Het aanhaken bij diverse projecten binnen de organisatie; Schakelen met de business; Meedenken over de mogelijkheden van het platform binnen de organisatie. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap, bestaande uit standaard- en maatwerkapplicaties. De maatwerkapplicaties worden ontwikkeld door een inhouse development team. Het doel voor de komende periode is het verder vernieuwen en optimaliseren van het huidige applicatielandschap. Zo staat de organisatie aan

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 »

Senior PHP developer met ambities tot Software Arc

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

Bekijk vacature »

Outsystems Developer Medior

Dit ga je doen Bouwen aan nieuwe en innovatieve applicaties; Maken van koppelingen tussen Outsystems en het bestaande applicatielandschap; Troubleshooting op bestaande software. Hier ga je werken De organisatie is internationale speler binnen de bouwbranche en richt zich op de infrastructuur, zowel boven als onder de grond. Ze zijn ruim 1100 man groot en maken op IT vlak een mooie groei door. Als ervaren Developer kom je te werken op een IT-afdeling van zo'n 25 man groot. Een aantal jaar geleden hebben ze de keuze gemaakt om zich meer te gaan richten op ontwikkeling en door de groei van de

Bekijk vacature »

PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen pure PHP code schrijven. Samenwerken met de klantreiziger om onze klanten

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 »

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 »

.NET 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 »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

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

22/12/2024 09:25:45
 
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.