Мне любопытно узнать нюанс, который я вижу в пакете витой , в частности в классе twisted.internet.protocol.Factory
.
Этот класс ожидает twisted.internet.protocol.Protocol
для установки в качестве атрибута класса, а метод Factory.build_protocol
инициализирует протокол и устанавливает себя (экземпляр Factory
) в качестве атрибута экземпляра Protocol
.
Преимущество этого состоит в том, что атрибуты и методы экземпляра Factory
доступны для экземпляра Protocol
.Я думаю, что это имеет реальные преимущества, но мне это кажется странным, и я не видел, чтобы образец повторялся где-либо еще.
Является ли этот шаблон более распространенным, чем я понимаю?Во-вторых, является ли этот шаблон принятым в качестве стандарта для предоставления атрибутов и методов одного класса доступным в другом или есть другой способ достижения того же, который имеет более широкое использование / принятие?