Monsters design
From CSSEMediaWiki
(Difference between revisions)
Line 19: | Line 19: | ||
== Spot the GoF pattern == | == Spot the GoF pattern == | ||
− | + | ||
− | * Composite: ''Labyrinth'', ''Dungeon'' | + | * [[Composite]]: ''Labyrinth'', ''Dungeon'' |
− | * Decorator: ''Werewolf'', ''Human'' | + | * [[Decorator]]: ''Werewolf'', ''Human'' |
− | * Decorator: ''Demon'', ''Monster'' | + | * [[Decorator]]: ''Demon'', ''Monster'' |
− | * Stategy: ''Vampire'', ''VampireStyle'' | + | * [[Factory Method]]: ''Lycan'' |
− | * Template Method: ''Lycan'' | + | * [[Proxy]]: ''Mimic'' |
− | * Visitor: ''Explorer'', ''Dark Place'' | + | * [[Stategy]]: ''Vampire'', ''VampireStyle'' |
+ | * [[Template Method]]: ''Lycan'' | ||
+ | * [[Visitor]]: ''Explorer'', ''Dark Place'' |
Revision as of 00:23, 20 August 2008
This design appeared in the 2004 exam.
Design notes
- This is an incomplete framework of classes that track the behaviour of Monsters. More types of Monster are expected to be added later.
- The DarkPlaces in which Monsters live and the Humans on which they prey are also modelled.
- EtherealMonsters are bodiless; they can walk through walls.
- CorporealMonsters have bodies; they can bite().
- A Demon can exist only by possessing some other monster. It takes over control of the possessed Monster.
- A Mimic pretends to be another CorporealMonster. Usually, it just forwards messages to the original monster, but it can vary behaviour if it wants to.
- A Vampire can change its style between behaving like a person and behaving like a bat.
- A Lycan is a Human turned into a hairy Monster. When its fullmoon() method is invoked, it tries to hunt a Human and bite() him/her. The bite() of a Lycan turns the victim into another Lycan of the same type.
- Monsters lurk in DarkPlaces: UnderBeds, in Wardrobes and Dungeons. If a Dungeon is a Labyrinth, it can have other Dungeons inside it, but it cannot if it is a Cavern.
- Monsters and Humans can use an Explorer subclass to look around inside DarkPlaces.
- Constructors, getters and setters, and many methods have been omitted from the diagram. Make reasonable assumptions where necessary and state them.
Spot the GoF pattern
- Composite: Labyrinth, Dungeon
- Decorator: Werewolf, Human
- Decorator: Demon, Monster
- Factory Method: Lycan
- Proxy: Mimic
- Stategy: Vampire, VampireStyle
- Template Method: Lycan
- Visitor: Explorer, Dark Place