Design Patterns : Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet154/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   150   151   152   153   154   155   156   157   ...   288
Bog'liq
GOF Design Patterns

FlyweightFactory
o
creates and manages flyweight objects. 
o
ensures that flyweights are shared properly. When a client requests 
a flyweight, the FlyweightFactory object supplies an existing 
instance or creates one, if none exists.

Client
o
maintains a reference to flyweight(s). 
o
computes or stores the extrinsic state of flyweight(s). 
Collaborations 

State that a flyweight needs to function must be characterized as either 
intrinsic or extrinsic. Intrinsic state is stored in the ConcreteFlyweight 


Design Patterns: Elements of Reusable Object-Oriented Software 
223 
object; extrinsic state is stored or computed by Client objects. Clients 
pass this state to the flyweight when they invoke its operations. 

Clients should not instantiate ConcreteFlyweights directly. Clients must 
obtain ConcreteFlyweight objects exclusively from the FlyweightFactory 
object to ensure they are shared properly. 
Consequences 
Flyweights may introduce run-time costs associated with transferring, finding, 
and/or computing extrinsic state, especially if it was formerly stored as intrinsic 
state. However, such costs are offset by space savings, which increase as more 
flyweights are shared. 
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. 
The more flyweights are shared, the greater the storage savings. The savings 
increase with the amount of shared state. The greatest savings occur when the 
objects use substantial quantities of both intrinsic and extrinsic state, and 
the extrinsic state can be computed rather than stored. Then you save on storage 
in two ways: Sharing reduces the cost of intrinsic state, and you trade extrinsic 
state for computation time. 
The Flyweight pattern is often combined with the Composite (183) pattern to 
represent a hierarchical structure as a graph with shared leaf nodes. A consequence 
of sharing is that flyweight leaf nodes cannot store a pointer to their parent. 
Rather, the parent pointer is passed to the flyweight as part of its extrinsic 
state. This has a major impact on how the objects in the hierarchy communicate 
with each other. 
Implementation 
Consider the following issues when implementing the Flyweight pattern: 
1.
Removing extrinsic state.
The pattern's applicability is determined 
largely by how easy it is to identify extrinsic state and remove it from 
shared objects. Removing extrinsic state won't help reduce storage costs 
if there are as many different kinds of extrinsic state as there are objects 
before sharing. Ideally, extrinsic state can be computed from a separate 
object structure, one with far smaller storage requirements.



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   150   151   152   153   154   155   156   157   ...   288




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish