Ненавижу интерфейсы, приватные методы и прочую оопэшную лабуду, чтобы мальчик мог прикидываться девочкой. Лучше давать возможность нарушать контракт по глупости или злому умыслу, нежели проектировать гибкую систему на 100500 ситуаций, которая при этом не даст реализовать 100501-ю.