OOP is about programming with interface, not the implementation. Objects are "talking" to each other using their interfaces. When interfaces are not well defined one object can know too much about the other and if you need to change implementation of your object you'll need to change your programm in different places. That's really bad, it`s all about changing things in one place and DRY principles. So my question is the following: what if make interface context. Interface context will make sure that if object provides multiple interfaces other objects will only be able to use the one they need. This will ease things and reduce possibility of errors.
Let me introduce the example: some abstract class that let us read text and write text. So it has two interfaces: reader and writer. If you are dealing with reader, all you need is reader methods. So we can remove the writer interface. In the real world you'll still see the reader part (in IDEs like Visual Studio). But what if make such a thing that would allow you to declare "I'm in the reader context" and you`ll be able to do things only related to reading and every class will show you its reader related interface. What do you think? Does it make sense? Like add-ins to Visual Studio that will hide other interfaces when set to one?