i have gone through the interview and found there are few questions related to class/Interface design with real time case studies.
I am not been involved in this area in my past experiences but i feel i need to dig out something more in basic design laws of OOps in java and needs more hands on the same in order to get more exposure on the same level.
I have tried to find out in net but there is no such information available to boost this area.
I need someone who is aware of the concepts or real time example how to use the Interfaces and classes in different cases that would be great.
You asked about object-oriented design principles, which by nature are not targeted to any specific problem but rather are there to help you come up with good solutions. Principles are meant to guide you, they are not solutions in and of themselves. Saying that design principles like SOLID, DRY, and KISS are not helpful is like saying that the principle of cause and effect in physics is not helpful because it doesn't tell you how to make a rocket capable of reaching outer space.
Prabhat Ranjan wrote:Its real world ..means real objects in daily to daily life.
I'm afraid your question is far too vague to really give you a proper answer; however, one thing I would say is that naming is very important.
If you have a chess board, call the class that defines it ChessBoard, not CBoard or some other acronym that saves you a few characters of typing, but only means something to you.
In your AirTel example above, the likelihood is that you will have a Company and a Plan; but whether they should be classes or interfaces only you can tell; and you certainly haven't provided us with enough information to make that judgement for you.
Remember: programs are meant to be read by other people; so if you don't make them easily understandable, they will be put in the garbage bin as soon as you've gone.
Isn't it funny how there's always time and money enough to do it WRONG?
Articles by Winston can be found here