Ik weet niet wat jullie daar van denken, maar ik heb het nooit echt gehad met het "Strategy pattern" (zie hier). Voor mij is het echt een doodzonde tegen het denken in termen van objecten. Waarom?
Het handige aan OO is dat het je toelaat om tijdens het programmeren objecten toe te voegen die iets tastbaar uit de werkelijkheid (eventueel fictieve werkelijkheid) voorstellen. Dat is volgens mij dan ook het grootste voordeel aan het werken met objecten.
Waarom niet gewoon werken met een else if ? Bijvoorbeeld.
Code: Select all
if (situation1) {
// Strategy one
} else if (situation2) {
// Strategy two
} else {
// Strategy three
}
distributionStrategies.cpp
Code: Select all
namespace strategies::distribution {
void firstNodeStrategy() {
}
void intermediateNodeStrategy() {
}
void lastNodeStrategy() {
}
}
a) Je niet gaat zondigen tegen de kern van het object georienteerd programmeren (hoofdreden!)
b) Alle strategieen samen mooi in 1 file staan, in plaats van allemaal verspreid over verschillende klassen
c) Je het ook over meerdere files kan verdelen indien gewenst (indien de file bijvoorbeeld te lang zou worden)
Groeten,
Glenn