Вы можете либо разделить его на подклассы по мере необходимости, что вполне приемлемо, либо исправить базовый класс новыми методами, которые вы хотите.С точки зрения дизайна, подкласс является более чистым подходом, но вы можете обнаружить, что некоторые из других связанных классов используют Net :: IMAP напрямую, и заставить их использовать вашу конкретную версию сложно или непрактично.
Это на самом деледовольно просто исправить все методы, которые вам не нравятся, с помощью собственной реализации, просто переопределив их в любой момент выполнения вашей программы.