Observer pattern using aspect-oriented programming
Subject-oriented programming: a critique of pure objects