Although structured design allows you to reuse code through simple function calls, OOD/OOP takes it one step further and allows function calls and data representation to be generalized as a functional unit.) It has been pointed out, with good reason, that Java is a language which can help enforce good OO programming.