Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Observer Pattern 이란


옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. - 출처 wikipedia

옵저버 패턴은 객체의 상태 변화를 등록한 관찰자에게 알려주는 패턴으로 데이터 변경이 발생할 때 여러 객체에게 통지할 수 있습니다.

...

Code Block
class PostObserver
{
  /**
     * Handle the post "deleting" event.
     *
     * @param  \App\Post  $post
     * @return void
     */
    public function deleting(Post $post)
    {
		$count = $post->comments()->count();
        
		if ($count > 0) 
		{
			throw new DataIntegrityException("댓글이 달려있는 게시글은 삭제할 수 없습니다.");
		}
		
		$user = \Auth::user();
		
		if ($user->id != $post_writer_id)
		{
			throw new AuthorizationExceptionNotPermittedException("본인이 작성한 게시글만 삭제할 수 있습니다.");
		}
    }

...