디자인 패턴 4

[Pattern]Observer Pattern

객체들 사이에 1:N의 의존관계를 정의해 두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 갱신될 수 있게 만드는 패턴입니다. Observer를 상속받아서 ConcreteObserver를 구현합니다. 구현한 ConcreteObserver의 notify()는 객체의 상태가 변할 때 이를 반영할 알고리즘을 구현합니다. Subject에 구현해 놓은 ConcreteObserver를 registerObserver(Observer o)를 이용해 observerCollection에 등록합니다. 등록한 ConcreteObserver는 Subject의 notifyObserver()를 통하여 호출됩니다. 즉, 개발자는 각각의 Observer들을 일일이 갱신할 필요없이..

[Pattern]MVC Pattern과 MVP Pattern 그리고 차이

모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 아키텍처 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC모델(Model)은 애플리케이션의 정보(데이터)를 나타낸다.뷰(View)는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 컨트롤러(Controller)는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.=밑의 그림은 스탠포드에서 iOS 프로그래밍을 강연할 때, MVC를 가르치는 그림이다. MVC 참고 : http://en.wikipedia.org/w..

[Pattern]State Pattern과 Strategy Pattern

프로젝트 네이버 개발자센터 URL : http://developer.naver.com/projects/dpviedorental State Pattern과 Strategy Pattern을 이용하여 기존의 코드는 최대한 건드리지 않고 클라이언트 코드만 수정하여 구현하도록 만들었다. 아직 디자인패턴을 배우는 단계이지만 최대한 OCP를 지키면서 구현하려고 노력했다. 객체지향에서는 모든 변화의 단위를 클래스로 표현한다. 그렇게 작성해야 차후에 변경(유지/보수)이 편리하기 때문이다. 변화의 단위 중에 상태와 전략(알고리즘)을 구현하는 설계패턴에 대해서 알아보자. State Pattern스테이트 패턴은 상태를 클래스로 표현한다. 상태를 클래스로 표현하면 상태의 변화를 클래스의 교체를 통해서 나타낼 수 있다. 새로운 ..

[Pattern]Singleton Pattern

프로그래밍을 하다보면 공통된 객체를 여러 객체에서 사용할 때가 생긴다. 그럴 때, 싱글톤 패턴을 이용하면 상당히 깔끌하게 해결된다. 싱글톤을 이용하는 코드는 밑에와 같다. public class Instance { private static Instance instance; public Instance(){ } public static Instance getInstance(){ if(instance == null){ System.out.println("make Single Instance"); instance = new Instance(); } return instance; } public void testInstance(){ System.out.print("test Singleton Instance")..