[소프트웨어공학] 디자인 패턴
[소프트웨어공학] 디자인 패턴 사용 목적에 따라 생성 패턴, 구조 패턴, 행위 패턴으로 분류 된다. 생성 패턴 객체의 생성 과정에 관여하는 것 ex) 추상 팩토리(abstract factory), 빌더(builder), 프로토타입(prototype), 싱글톤(singleton) 구조 패턴 클래스나 객체의 합성에 관한 패턴 ex) Adapter, Bridge, Composite, Decorator, Proxy 행위 패턴 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의 ex) chain of responsibility, command, iterator, mediator, memento, flyweight 팩토리 패턴 (factory pattern) 팩토리 메소드 패턴 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만든다. 즉, 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것 추상 팩토리 패턴 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성 어댑터 패턴 (adapter pattern) 전기 콘센트를 보면 이해하기 쉽다. 한국의 표준 플러그를 인본에 전원 소켓에 바로 끼워줄수 없어 동그랑 모양을 일자로 바꿔주는 어댑터를 끼워주어야 한다. 한 클래스의 인터페이스를 클라이언트에서 사용하고자하는 다른 인터페이스로 변환한다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할 수 있다. 이렇게 함으로써 클라이언트와 구현된 인터페이스를 분리할 수 있으며, 향후 인터페이스가 바뀌더라도 그 변경 내역은 어댑터에 캡슐화 되기 때문에 클라이언트는 바뀔 필요가 없다. 기존 클래스를 재사용할...