songcountobserver.aj
来自「designpatterns for aop」· AJ 代码 · 共 34 行
AJ
34 行
package designpatterns.observer.aspectj;import ca.ubc.cs.spl.aspectPatterns.patternLibrary.*;public aspect SongCountObserver extends ObserverProtocol { declare parents : Song extends Subject; declare parents : SongPlayCounter implements Observer; pointcut titleUse(Song song) : this(song) && execution(public void Song.play()); public pointcut subjectChange(Subject subject) : titleUse(Song) && this(subject); public void updateObserver(Subject s, Observer o) { SongPlayCounter counter = (SongPlayCounter) o; counter.incrementPlays((Song) s); } // could be injected by a dependency injection // framework like Spring private SongPlayCounter defaultCounter = new SongPlayCounter(); pointcut songCreation(Subject s) : execution(public Song.new(..)) && this(s); after(Subject s) returning : songCreation(s){ // different songs could be tracked in different statistical sets... addObserver(s, defaultCounter); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?