Object-oriented programming has several advantages. It encourages code reuse, and thus decreases the amount of time spent developing and maintaining code. It also encourages breaking problems up into multiple pieces, which results in code that is easy to maintain. A disadvantage of object-oriented programming is that creating programs takes extra effort because a great deal of planning is often involved in designing them.