ConcreteFlyweight
E679873
ConcreteFlyweight is the specific implementation of the Flyweight pattern that stores intrinsic, shareable state and provides the actual behavior reused across multiple contexts.
Statements (45)
| Predicate | Object |
|---|---|
| instanceOf |
DesignPatternComponent
ⓘ
FlyweightImplementation ⓘ |
| appearsIn | Design Patterns: Elements of Reusable Object-Oriented Software NERFINISHED ⓘ |
| benefit |
reduces memory usage
ⓘ
supports large numbers of fine-grained objects ⓘ |
| category | structural pattern element ⓘ |
| collaboratesWith |
Client
ⓘ
FlyweightFactory NERFINISHED ⓘ |
| conformsTo | Flyweight interface ⓘ |
| createdBy | FlyweightFactory NERFINISHED ⓘ |
| definedIn | Flyweight pattern structure NERFINISHED ⓘ |
| designGoal |
enable object sharing
ⓘ
optimize resource usage ⓘ |
| doesNotStore | extrinsic state ⓘ |
| exampleUseCase |
character objects in text rendering
ⓘ
game object sharing ⓘ graphical glyph objects ⓘ |
| granularity | fine-grained ⓘ |
| hasConstraint |
must be safe to share
ⓘ
must not depend on extrinsic state ⓘ |
| hasProperty |
context independent
ⓘ
fine-grained object ⓘ immutable intrinsic state ⓘ memory efficient ⓘ reusable ⓘ |
| hasRole |
is shared across multiple contexts
ⓘ
provides shared behavior ⓘ stores intrinsic state ⓘ |
| implements | Flyweight interface ⓘ |
| lifecycle | managed by FlyweightFactory ⓘ |
| partOf | Flyweight pattern NERFINISHED ⓘ |
| patternOrigin | Gang of Four design patterns NERFINISHED ⓘ |
| patternType | structural design pattern component ⓘ |
| relatedConcept |
Flyweight
ⓘ
FlyweightFactory NERFINISHED ⓘ UnsharedConcreteFlyweight ⓘ |
| requires | clear separation of intrinsic and extrinsic state ⓘ |
| responsibleFor |
accepting extrinsic state as parameters
ⓘ
implementing flyweight operations ⓘ using intrinsic state in operations ⓘ |
| stores | intrinsic state ⓘ |
| typicalLanguage | object-oriented languages ⓘ |
| usedBy | Client ⓘ |
| usedIn | structural design patterns ⓘ |
| visibility | usually hidden behind factory ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.