I'm working on a task managing application which uses a ResourceManager to manage all the reservations of different Resources, each with their ResourceType. At the moment, there are 5 kinds of ResourceTypes and these will not change regularly, but it can occur.
My question is what would be the best way to approach the design for this in terms of OO design, GRASP principles and the overall maintainability of the code:
Option A: seperate classes Resource and ResourceType + ResourceManager class will keep a multimap of resources for each resource type
Option B: seperate class Resource + ResourceType class will contain a list of its corresponding Resources.
It seems to me that with option B, there'd be a higher cohesion concerning resources and their types, but I'm looking for certain (refactoring) scenarios in which one option will come out better than the other?