Flyweight pattern

937 views
803 views

Published on

Flyweight pattern

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
937
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Flyweight pattern

  1. 1. Prepared By : Hasnaeen Rizvi RahmanAstha School of Advanced Computing
  2. 2.  Use sharing to support large number of fine-grained objects efficiently.
  3. 3.  An application uses many objects. A flyweight is a shared object that can be used in multiple contexts simultaneously. It acts as an individual object in each context. The key concept is the distinction between intrinsic and extrinsic state.
  4. 4.  An application uses a large number of objects. Storage costs are high because of the sheer quantity of objects. Most objects state can be made extrinsic. Many groups of objects may be replaced by relatively few shared objects once extrinsic state is removed. The application doesn’t depends on object identity.
  5. 5.  Flyweight (Glyph) • Declare an interface through which flyweights can receive and act on extrinsic state. ConcreteFlyweight (Character) • Implements the Flyweight interface and adds storage for intrinsic state, if any. UnsharedConcreteFlyweight (Row,Column) • Not all flyweight subclasses need to be shared. Flyweight Factory • Creates and manages flyweight objects. • Ensures that flyweights are shared properly. Client • Maintains a reference to flyweights • Computes or stores the extrinsic state of flyweight.
  6. 6.  Client passes extrinsic state to flyweight. Client invokes FlyweightFactory to create Flyweight object.
  7. 7.  Flyweight may introduce run-time cost. Storage savings are a function of several factors: • The reduction in the total number of instances that comes from sharing. • The amount of intrinsic state per object. • Whether extrinsic state is computed or stored.
  8. 8.  Removing extrinsic state. Managing shared objects.
  9. 9.  Design an application which stores list of entities. • Entity: It has an ID, Name and an attribute. • Attribute: Attributes are composite data where each attribute is either a leaf or a composite. It has all child management operation suggested in composite pattern. A leaf attribute have a name and value. A Composite attribute have a name but no value. Attribute returns an XML having Name and Value node. The composite attribute returns the list of child attribute XML.
  10. 10.  Entity XML could be something like… <Entity> <ID>1</ID> <Name>Entity 1</Name> <Attribute> <Name>Entity Attribute</Name> <Children> <Attribute> <Name>OrgChart</Name> <Children> <Attribute> <Name>Type</Name> <Value>Corporation</Value> </Attribute> <Attribute> <Name>Country</Name> <Value>Bangladesh</Value> </Attribute> </Children> </Attribute> </Children> </Attribute> </Entity>
  11. 11.  Use Flyweight pattern to reduce memory usage for attributes.

×