Your SlideShare is downloading. ×
  • Like
Flyweight pattern
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Flyweight pattern


Flyweight pattern

Flyweight pattern

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 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.