Flyweight pattern
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Flyweight pattern



Flyweight pattern

Flyweight pattern



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Flyweight pattern Presentation Transcript

  • 1. Prepared By : Hasnaeen Rizvi RahmanAstha School of Advanced Computing
  • 2.  Use sharing to support large number of fine-grained objects efficiently.
  • 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.  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.  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.  Client passes extrinsic state to flyweight. Client invokes FlyweightFactory to create Flyweight object.
  • 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.  Removing extrinsic state. Managing shared objects.
  • 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.  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.  Use Flyweight pattern to reduce memory usage for attributes.