CS253: Software Development with C++

Fall 2019

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?”

Gosh, aren’t you masculine.

Objections

“Having two classes will increase overhead.”

May I see your profiling data? Oh, you don’t have any? Yeah, I thought so. Your intuition is a poor guide, here. Also, having separate classes will decrease program development time and maintenance costs.

Objections

“You expect me to write two classes!?”

If you separate the functionality, two classes are easier to write than one overblown monster of a class.

If you’re afraid of writing classes, then look for a new profession.

Practice saying, “Can I supersize that for you?”