Solution (source code)

= Solution

\b[This is the <Decorator pattern>, a <structural pattern>.] `Packages` is a <decorator object>: it implements `CableTV` while holding another `CableTV`, to which its default queries delegate. `Movies` and `HDChannels` extend the price and description of the wrapped account. Because a wrapper itself satisfies `CableTV`, another wrapper can surround it; features combine without declaring a new <software class> for each possible package combination.