public void attach(ActionObserver observer){
  observer.makeOneTimeUse();
  lock.lock();
  try {
    onceUsedObservers.add(observer);
  }
  finally {
    lock.unlock();
  }
}

public void attach ( ActionObserver observer ) { observer . makeOneTimeUse ( ) ; lock . lock ( ) ; try { onceUsedObservers . add ( observer ) ; } finally { lock . unlock ( ) ; } }
once used observer add to observercontroller . if observer notify will be removed .
