A word processor uses the following code for defining font format:
class FontFormat inherits Object private fontName : String private fontSize : Int public constructor(name : String, size : Int) fontName = name fontSize = size end constructor public function getFontName() : String return fontName end function public function getFontSize() : Int return fontSize end function override public function equals(obj : Object) : Bool if (!(obj instanceof FontFormat)) return false end if FontFormat f = (FontFormat)obj return f.getFontName() == fontName && f.getFontSize() == fontSize end function override public function getHashCode() : Int return fontName.getHashCode() ^ fontSize.getHashCode() end function end class
Analysis shows that even the largest documents use fewer than a hundred different combinations of font name and size. The same analysis shows that the application sometimes uses thousands of FontFormat objects, most of which share the same font name and size.
(Fill in the blank with the software design pattern that solves the issue.)
Thesoftware design pattern can be used to minimize the memory footprint by sharing FontFormat objects.
- OOP & Design Patterns
- Design Patterns
- Structural Patterns
Duration: 5 min
Author: Josip Kremenić
Score DistributionNot enough data for chart.
Would you like to see our other questions?
We have 1000+ premium hand-crafted questions for 160+ job skills and 20+ coding languages. We prefer questions with small samples of actual work over academic problems or brain teasers.
On the blog
Since we're all biased and we use incorrect proxies, why not just outsource hiring to experts or recruitment agencies? After all, they've been screening people for many years, so they must know how to do it right?
Not really. I was surprised to discover that many experts...