There are various books written for Design Patterns ranging from "Design Patterns: Elements of Reusable Object-Oriented Software" to "Pattern-Oriented Software Architecture Volume 1-4". But, I did not found any good book which explains Objects Oriented Design, how to design classes, interfaces, etc for large scale and complex systems and make system design as simple as possible through those techniques.
Please share your thoughts about it.
A couple of the most obvious:
IMHO good OOD is about keeping modules as small, compact and consistent as possible (e.g. the "SOLID" principles). Therefore, good large-scale OOD is "just" a bunch of good small-scale OOD together.
The only thing that really changes in larger scale systems is the importance of getting the smaller scale bits right. Get your abstractions in good order before you get down to actual code.