Language Selection

English French German Italian Portuguese Spanish

The Inverse Extension Design Pattern

Filed under
HowTos

In an inheritance hierarchy, permit each parent class's method to extend its child class's method so it can act as a decorator for its child class's behavior.

In object-oriented programming, it is common for a child class's method to extend the parent class's method. However, inverting this pattern is useful as well. Although most object-oriented programming languages support the former, I have never encountered one that supported the latter. Nonetheless, it is possible to implement this pattern without explicit support from the programming language, just as it was possible to implement inheritance in C before C++ was created.

A few interesting features of normal extension should be kept in mind. First, a child class can call its parent class's method anywhere within its own method. Hence, the child class is responsible for determining if the parent gets to go first, last or somewhere in the middle. Secondly, the child class gets to choose what to pass to the parent class's method and what to do with whatever, if anything, the parent class's method returns.

Full Article.

More in Tux Machines

Android/ChromeOS/Google Leftovers

Games: SC-Controller 0.4.2, Campo Santo, Last Epoch and More

Android Leftovers

Ryzen 7 2700X CPUFreq Scaling Governor Benchmarks On Ubuntu Linux

With this week's Ryzen 5 2600X + Ryzen 7 2700X benchmarks some thought the CPUFreq scaling driver or rather its governors may have been limiting the performance of these Zen+ CPUs, so I ran some additional benchmarks this weekend. Those launch-day Ryzen 5 2600X / Ryzen 7 2700X Ubuntu Linux benchmarks were using the "performance" governor, but some have alleged that the performance governor may now actually hurt AMD systems... Ondemand, of course, is the default CPUFreq governor on Ubuntu and most other Linux distributions. Some also have said the "schedutil" governor that makes use of the kernel's scheduler utilization data may do better on AMD. So I ran some extra benchmarks while changing between CPUFreq's ondemand (default), performance (normally the best for performance, and what was used in our CPU tests), schedutil (the newest option), and powersave (if you really just care about conserving power). Read more