Written by students who passed Immediately available after payment Read online or as PDF Wrong document? Swap it for free 4.6 TrustPilot
logo-home
Summary

Samenvatting Creational/Structural/Behavioral Patterns

Rating
-
Sold
-
Pages
7
Uploaded on
04-01-2020
Written in
2019/2020

Samenvatting over alle 3 de soorten design patterns: Creational (Factory, Builder, Singleton, Prototype), Structural (Facade, Adapter, Composite, Decorator) en Behavioral (Interpreter, Iterator, template method, Strategy, Observer en Command). Alle participants, voordelen en nadelen, structuren en beschrijvingen op een rijtje.

Show more Read less
Institution
Course

Content preview

PAFR Les 4 - Design Patterns
Design patterns: te implementeren standaardoplossingen voor bepaalde ontwerp problemen
die vaker voorkomen binnen een bepaalde context (abstract/conceptueel)
Frameworks / libraries: hergebruik van bestaande code die voorziet in één functionaliteit
(concreet / implementatie-specifiek)

Gebruik niet voor alles een pattern, laat je leiden door design principes en verbeter met
patterns.

Soorten design patterns:
• Creational patterns
Het maken van objecten en de mogelijkheid bieden om een client te ontkoppelen van de
objecten die hij moet maken.
• Structural patterns
Geven de mogelijkheid om klassen/objecten in grote structuren onder te brengen en te
organiseren in een samenhangend geheel.
• Behavioral patterns
Houden zich bezig met hoe klassen samenwerken en hun verantwoordelijkheid delen voor een
samenhangend geheel.


Creational patterns
Factory method
Bedoeling:
- Objecten aanmaken zonder te hoeven specificeren welke concrete klasse wordt gecreëerd
- (Sub)klassen of implementaties instantiëren tijdens runtime, waarbij de klassen en parameters
kunnen variëren

Stel dat we een pizza bezorgservice hebben. Voor elke soort delivery hebben we een apart
object (deliveryByBike, deliveryByFoot). Bij bezorgen binnen 500m doen we dit lopend, bij
bezorgen binnen 3000m doen we dit met de fiets.

Stel dat we nu een bezorgwijze willen
Delivery delivery; toevoegen, zoals DeliveryByCar.
Of, we de manier van bezorgen willen
if (distance <= 500) { baseren op iets anders dan de afstand.
delivery = new DeliveryOnFoot();
} else if (distance <= 3000) {
Dan heeft deze client class te veel
delivery = new DeliveryByBicycle();
} else { redenen om te veranderen. Dit schendt
System.out.println(“Distances exceeding 3000m het Single Responsibility Principle.
are not supported”);
Encapsulate what varies, in dit geval is
dat dus het aanmaken van objecten.




Jet Wardenier 28/12

, Oplossing:
Biedt een interface aan om objecten te creëren, maar laat subklassen of implementaties
beslissen welke klassen geïnstantieerd moeten worden en hoe.
Subklassen instantiëren tijdens runtime, waarbij de klassen en parameters kunnen
variëren
‘Product’ objecten maken zonder hun concrete klassen te specificeren


public class Main{
DeliveryFactory factory = new DistanceBasedDeliveryFactory(distance);
Delivery delivery = factor.createDelivery(); }


public class DistanceBasedDeliveryFactory implements DeliveryFactory{
private int distance;

public DistanceBasedDeliveryFactory(int distance){
this.distance = distance;
}
public delivery createDelivery(){
if (distance <= 500) {
return new DeliveryOnFoot();
}
if (distance <= 3000) {
return new DeliveryByBicycle();
}
return new DeliveryByCar();
}
}




inheritance/implementatie




1 factory per concreet product




Jet Wardenier 28/12

Written for

Institution
Study
Course

Document information

Uploaded on
January 4, 2020
Number of pages
7
Written in
2019/2020
Type
SUMMARY

Subjects

$5.96
Get access to the full document:

Wrong document? Swap it for free Within 14 days of purchase and before downloading, you can choose a different document. You can simply spend the amount again.
Written by students who passed
Immediately available after payment
Read online or as PDF

Get to know the seller

Seller avatar
Reputation scores are based on the amount of documents a seller has sold for a fee and the reviews they have received for those documents. There are three levels: Bronze, Silver and Gold. The better the reputation, the more your can rely on the quality of the sellers work.
jetwardenier Hogeschool Utrecht
Follow You need to be logged in order to follow users or courses
Sold
26
Member since
6 year
Number of followers
16
Documents
34
Last sold
2 year ago

3.3

8 reviews

5
2
4
2
3
2
2
0
1
2

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Working on your references?

Create accurate citations in APA, MLA and Harvard with our free citation generator.

Working on your references?

Frequently asked questions