CS253: Software Development with C++

Spring 2022

Helper Classes

Show Lecture.HelperClasses as a slide show.

CS253 Helper Classes

Helper Classes

If your class has to do several things, then it may help to break it down into smaller classes.

We didn’t evolve to do object-oriented programming. Our brains aren’t designed to do this sort of thing. They’re not very good at it. Therefore, keep each class simple & managable.

Example

Consider a container that is a hash table using filesystem storage. It may be useful to create a smaller class that stores a single item in the filesystem. Now, create a hash table class that stores the filesystem objects.

You can debug each class separately, and each class does only one thing. The filesystem class doesn’t know anything about hashing, and the hash table class doesn’t know anything about filesystems.

Objections

“I can understand this class just fine. Is it too complex for you ?”

Objections

“Having two classes will increase overhead.”

Objections

“You expect me to write two classes!?”

Alternatives

If you’re afraid of writing classes, then look for a new profession. There are so many!

👩‍🏭 🕵️‍♂️ 👩‍🔬 👩‍⚖️ 💂‍♂️ 👩‍🔧 👩‍🏫 👷‍♂️ 👨‍🍳 👨‍🔧 👨‍✈️ 👩‍🌾 👨‍🚒 👨‍🌾 👩‍🍳 👩‍🎨 👩‍💼 👮‍♀️ 👩‍🚀 👷‍♀️ 👨‍🏫 👩‍🎤 🎅 👩‍✈️ 👩‍🚒 👨‍🔬 👩‍⚕️ 👨‍🚀 🕵️‍♀️ 👨‍🎨 👮‍♂️ 👨‍⚕️ 👨‍🎤 👨‍🏭 👨‍💼 👨‍⚖️ 💂‍♀️ 🤶