Заюзал в очередной раз абстрактную фабрику, и неожиданно вспомнил, что метод класса не должен обращаться к объектам, которые вернул какой-либо метод.
Фабрика возвращает интерфейс объекта, который был специально введён, чтобы предоставить обобщённый доступ к разным типам объектов создаваемых фабрикой. Пользователи фабрики взаимодействуют только с этими интерфейсами, не с самими объектами. Т.о. пользователи фабрики не зависят от модулей реализующих конкретные объекты. Закон Деметры как раз и нужен для того, чтобы уменьшить зацепление между модулями. Следуйте духу закона, а не букве.