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

Ubuntu Touch Gets Major Update and the OS Is Now Crazy Fast – Screenshot Tour

Ubuntu Touch has just received a new major update and the developers have made some serious changes to the operating system, which now feels a lot faster and the experience is a lot smoother. Read more

35 Open Source Tools for the Internet of Things

In a nutshell, IoT is about using smart devices to collect data that is transmitted via the Internet to other devices. It's closely related to machine-to-machine (M2M) technology. While the concept had been around for some time, the term "Internet of Things" was first used in 1999 by Kevin Ashton, who was a Procter & Gamble employee at the time. Read more

IoT tinkerers get new Linux hub & open platforms

Cloud Media, the maker of entertainment box Popcorn Hour, launched a project on Kickstarter, Inc. that will add to the growing number of smart hubs for people to connect and control smart devices. Called the STACK Box, it features a Cavium ARM11 core processor, 256MB DDR3 RAM, 512MB flash, SD slot, 802.11n WiFi, Bluetooth LE 4.0, Z-Wave, standard 10/100 Ethernet port, optional X10 wired communication, 5 USB 2.0 ports, RS-232 port, 2 optocoupler I/O, Xbee Bus, Raspberry Pi-compatible 26-pin bus and runs Linus Kernel 3.10. IT also features optional wireless communications for Dust Networks and Insteon with RF433/315, EnOcean, ZigBee, XBee, DCLink, RFID, IR coming soon. Read more

Citrix and Google partner to bring native enterprise features to Chromebooks

Chromebooks are making inroads into the education sector, and a push is coming for the enterprise with new native Chrome capabilities from Citrix. Google and Citrix have announced Citrix Receiver for Chrome, a native app for the Chromebook which has direct access to the system resources, including printing, audio, and video. To provide the security needed for the enterprise, the new Citrix app assigns a unique Receiver ID to each device for monitoring, seamless Clipboard integration across remote and local applications, end user experience monitoring with HDX Insight, and direct SSL connections. Read more