There are many programming paradigms. One of them is the object oriented programming. But... Do you really take advantage of it? Are you brave enough to say that you have real "objects" in your project? Having classes and creating something from them is not enough... Have you heard about SOLID or GRASP principles? Do you know what DRY mean? Let's investigate those and some other rules to make your code really object oriented, not just pack of public getters and setters tangled as spaghetti in classes and packages.