>When should we subclass application and when not?
>
>I have a simple custom application developed (5 modules). I get new client that want the application, but need to enhance it, and modify one of the module.
>
>Should I subclass it or copy whole project ?John:
If you plan to have a generic base that can be reused, then you should definitely take advantage of OOP, by subclasing and then customizing the subclass for your new client. Any module (class) not modified or augmented, will inherit behavior, properties, methods, etc. and work the same way. Any global changes you want to make that should apply to every instance for every client, you make at a higher level, that is your base or intermediate classes of your framework.
If you copy and paste, you break with the base code, and then every global change you would want to make in the future will have to be copied into every new app. That is not OOP (no inheritance).
HTH