디자인(10)
-
[디자인패턴] 중재자패턴(Mediator Pattern)
중재자패턴(Mediator Pattern) 프로그램의 상호작용을 해야 하는 개체들이 서로 복잡하게 관계를 맺고 있을 경우에 상호작용에 관련된 행동을 별도의 형식으로 정의하여 중재를 맡는 개체를 두게하는 패턴 작성형식 내용 프로그램을 작성하다 보면 상호작용을 해야하는 경우 객체들 간의 결합도가 증가하고 유연성이 떨어지는 경우가 발생하게 됩니다. 중재자 패턴에서는 서로 명령을 주고 받을 수 있는 형식이 있다고 했을 때 서로 명령을 주고 받는 부분을 중재하는 형식을 정의를 하게 됩니다. 그리고, 원래 서로 명령을 주고 받았던 개체들은 중재자 개체를 알게 하고 중재자 개체는 이들 개체를 알게 합니다. 이제 특정 개체가 명령을 내릴 필요가 있으면 중재자 개체에게 전달하기만 하면 됩니다. 중재자는 해당 명령을 자신..
2016.11.30 -
[디자인패턴] 옵저버패턴(observer pattern)
옵저버패턴(observer pattern) 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버들에게 통지하도록 하는 디자인 패턴 작성형식 내용 옵저버 패턴을 우리 생활에 적용해 보자면 우리가 홈페이지나 멤버쉽을 가입 후 유용한 정보를 이메일 혹은 문자메시지로 받기를 원하는지 체크하는 항목을 봤던 기억들이 있을 것이다. 아니면 마트나 백화점등 행사에 참여하기 위하여 작성했던 개인 정보 및 홍보성 정보에 수신을 동의하겠다는 체크 박스 이러한 것들이 우리가 이번에 보고자 하는 옵저버 패턴이라고 보면 되겠다. 옵저버 패턴에 특징이라고 할 수 있는 느슨한 결합은 여러 가지 장점을 가지게 한다.청취를 할 observer를 언제든지 새로 추가 할 수 있다.새로운..
2016.11.25 -
[디자인패턴] 퍼사드패턴(facade pattern)
퍼사드패턴(facade pattern) 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공퍼사드에서 고수준의 인터페이스를 정의하여 서브시스템을 좀 더 쉽게 사용 가능 작성형식 [출처]http://egloos.zum.com/brogram/v/8990201 내용 [출처]https://ko.wikipedia.org/wiki/%ED%8D%BC%EC%82%AC%EB%93%9C_%ED%8C%A8%ED%84%B4퍼사드는 클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체이다.퍼사드는 소프트웨어 라이브러리를 쉽게 사용할 수 있게 해준다. 또한 퍼사드는 소프트웨어 라이브러리를 쉽게 이해할 수 있게 해 준다. 퍼사드는 공통적인 작업에 대해 간편한 메소..
2016.11.24 -
[디자인패턴] 책임사슬패턴(Chain of Responsibility pattern)
책임사슬패턴(Chain of Responsibility) 결합을 느슨하게 하기 위해 고안된 패턴한 개의 요청에 대하여 여러 객체에게 처리할 수 있는 기회를 주도록 한 디자인패턴 작성형식 내용 책임사슬패턴은 어떤 하나의 문제가 발생했을 경우 그 문제를 처리를 담당하는 다수의 처리기를 두고 순서대로 처리를 해 나가는 것이라고 보면 된다. 자바에서 책임사슬패턴을 찾아 보면 try - catch - finally 가 해당된다. try 블럭 안에서 코드를 실행 중에 Exception이 발생하게 되면 catch 블럭으로 이동을 하게 되는데 발생한 Exception이 무엇이냐 따라서 어느 catch 블럭이 실행 되는지 결정이 되는데 이 과정이 책임사슬패턴을 이용한 구현 방식 중 하나이다. catch 블럭에서 자신이 ..
2016.11.24 -
[디자인패턴] 방문자패턴(visitor pattern)
방문자패턴(visitor pattern) 알고리즘을 객체 구조에서 분리 시키는 패턴멤버변수와 메서드를 다른 클래스로 분리하여 서로 간의 호출하게 함으로써 추후 메서드 추가를 자유롭게 한다 작성형식 내용 방문자 패턴은 컴포짓패턴과 같이 쓰는 경우가 많다. 위 사진에서 보면 좌측에 element를 구현하는 클래스를 다룰때 컴포짓 패턴을 이용하여 개별 객체와 그 객체들을 목록 형태로 가지고 있는 상위 객체를 구현하여 방문자 패턴을 구현하게 된다.일반적인 경우에 OOP에서는 객체 안에 멤버변수와 메서드를 같이 작성 하도록 하지만 방문자 패턴에서는 변수와 메서드를 분리하여 작성 하도록 하고 있다. 이와 비슷한 패턴 형식으로는 전략패턴, 커맨드패턴등이 있다. 이 패턴들과 차이점은 전략 패턴은 하나의 객체에 대하여 ..
2016.11.23 -
[디자인패턴] 데코레이터 패턴(Decorator pattern)
데코레이터 패턴(Decorator pattern) 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다 작성형식 내용 특징데코레이터의 부모클래스는 자신이 장식하고 있는 객체의 부모클래스와 같으며, 한 객체를 여러 개의 데코레이터로 감쌀 수 있다. 데코레이터는 자신이 감싸고 있는 객체와 같은 부모클래스를 가지고 있기 때문에 원래 객체가 들어갈 자리에 데코레이터 객체를 집어넣어도 상관 없다. 데코레이터는 자신이 장식하고 있는 객체에게 어떤 행동을 위임하는 것 외에 원하는 추가적인 작업을 수행할 수 있고 객체는 언제든지 감쌀 수 있기 때문에 실행에 필요한 데코레이터를 마음대로 적용할 수 있다.[펌]http://skmagic...
2016.11.21