1. It would be better to make a generic Shape class from which Circle, Rectangle, and Octahedron can extend. Using this, there would be no casing and each shape would just know how to draw themselves. This way, to add a new shape, you don't need to modify old classes. It increases mantainability and is good code re-use.
2. Boxes use Pens, they aren't pens. Therefore they need to have a pen, not be one. You have a dog, hopefully you don't inherit from one. Delegation, too, in the delegating of the delegatable delegatables to the pen, such as draw and other view related functionality.
3. Bad. Code-copy bad, re-use through object inheritance good.
yes, and also just object re-use. by having lots of small(er) encapsulated objects, you can use them in many different places. -ellie
4. Bad, test 1 this was had.
5. Command Pattern, we learned now so good. In test 1, it was supposed to be a noun.