Design Patterns : Elements of Reusable Object-Oriented Software



Download 4,06 Mb.
Pdf ko'rish
bet159/288
Sana07.04.2022
Hajmi4,06 Mb.
#535140
1   ...   155   156   157   158   159   160   161   162   ...   288
Bog'liq
GOF Design Patterns

Related Patterns 
The Flyweight pattern is often combined with the Composite (183) pattern to 
implement a logically hierarchical structure in terms of a directed-acyclic graph 
with shared leaf nodes. 


Design Patterns: Elements of Reusable Object-Oriented Software 
232 
It's often best to implement State (338) and Strategy (349) objects as flyweights. 
3
Look-up time in this scheme is proportional to the font change frequency. 
Worst-case performance occurs when a font change occurs on every character, but 
that's unusual in practice.
4
In the Sample Code given earlier, style information is made extrinsic, leaving 
the character code as the only intrinsic state.
5
See Abstract Factory (99) for another approach to look-and-feel independence.


Design Patterns: Elements of Reusable Object-Oriented Software 
233 
Proxy 
Intent 
Provide a surrogate or placeholder for another object to control access to it. 
Also Known As 
Surrogate 
Motivation 
One reason for controlling access to an object is to defer the full cost of its 
creation and initialization until we actually need to use it. Consider a document 
editor that can embed graphical objects in a document. Some graphical objects, 
like large raster images, can be expensive to create. But opening a document should 
be fast, so we should avoid creating all the expensive objects at once when the 
document is opened. This isn't necessary anyway, because not all of these objects 
will be visible in the document at the same time. 
These constraints would suggest creating each expensive object 
on demand
, which 
in this case occurs when an image becomes visible. But what do we put in the document 
in place of the image? And how can we hide the fact that the image is created 
on demand so that we don't complicate the editor's implementation? This 
optimization shouldn't impact the rendering and formatting code, for example. 
The solution is to use another object, an image 
proxy
, that acts as a stand-in 
for the real image. The proxy acts just like the image and takes care of 
instantiating it when it's required. 
The image proxy creates the real image only when the document editor asks it to 
display itself by invoking its Draw operation. The proxy forwards subsequent 
requests directly to the image. It must therefore keep a reference to the image 
after creating it. 



Download 4,06 Mb.

Do'stlaringiz bilan baham:
1   ...   155   156   157   158   159   160   161   162   ...   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