Я нашел разные реализации шаблона наблюдателя в Delphi, например: Исходные шаблоны проектирования и Delphi Hobbyist .
В общем, как лучше всего реализовать наблюдателя в Delphi?
Я бы сказал использовать интерфейсы, потому что код более читабельный.