Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking to prepare for a job interview and I wanted to go over some good Object Oriented Design (OOD) questions.

Here are some of the OOD concepts that should give a good starting point:

  1. inheritance
  2. multiple inheritance
  3. encapsulation
  4. abstraction
  5. composition
  6. polymorphism
  7. overriding polymorphism

Would you please suggest any other OOD question(s)/topics that should be reviewed?


migration rejected from Jun 21 '15 at 10:15

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as too broad by durron597, MichaelT, gnat, GlenH7, Ixrec Jun 21 '15 at 10:15

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

Patterns. Design patterns, mostly, but also mega-patterns like MVC, MVVM and so on. Look at anti-patterns as well, like god object and tarball.


What is a singleton pattern? When/Why would you use it? What are the positives/negatives in using that pattern? What is a strategy pattern? When/Why... (etc) What is a factory pattern? When/Why... (etc)

Pick a couple of the more "common" patterns and see if they have at least been exposed to them. You can also give a small, bad programming example and have the candidate refactor it. You can see how they approach a problem.

Ask them to draw a picture of one of the patterns on a white board using UML (doesn't have to be perfect, but will show if they have actually used any of it).

When I interview developers I would ask them about version control systems. I didn't really care what they used, but that they actually did use them (and their attitudes towards them). I know that's not OOD, but I just threw my 2c in :)


Not the answer you're looking for? Browse other questions tagged or ask your own question.