목록Design Pattern (3)
임베디드에서 서버까지
디자인패턴에 대해서 정리하자. 1) 생성 패턴 - 추상 팩토리 패턴 (Abstract Factory Pattern) - 빌더 패턴 (Builder Pattern) - 팩토리 메서드 패턴 (Factory Method Pattern) - 싱글톤 패턴 (Singleton Pattern) - 원형 패턴 (Prototype Pattern) 2) 구조 패턴 - 어댑터 패턴 - 브리지 패턴 - 컴포지트 패턴 - 데코레이터 패턴 - 파사드 패턴 - 프록시 패턴 - 플라이웨이트 패턴 3) 행위패턴 - 책임 연쇄 패턴 - 커맨드 패턴 - 해석자 패턴 - 반복자 패턴 - 중재자 패턴 - 메멘토 패턴 - 옵저버 패턴 - 상태 패턴 - 전략 패턴 - 템플릿 메소드 패턴 - 방문자 패턴
GOF 디자인패턴에 대해 하나씩 살펴보자. 생성패턴 중 Factory Method Pattern 은 간단하면서도 이해하기 쉬운 패턴이다. 대부분 전략패턴(Strategy Pattern)과 같이 쓰이게 되고, 같은 인터페이스를 상속하는 객체들의 생성을 담당하는 클래스를 Factory 클래스로 관리한다. 장점 : 생성과 관련된 내용을 Factory 클래스에서 관리할 수 있다.스타크래프트에서 빨간색 마린과 파란색 마린을 생산하는 예제를 살펴보자. 팩토리 메소드 패턴에서는 추상 팩토리 패턴에서와 다르게 Factory의 인스턴스가 꼭 필요하지 않다. FactoryMarine 클래스의 CreateMarine 메소드를 static 으로 선언하여 인스턴스가 아닌 클래스가 IMarine 객체들을 생성하도록 설계하였다. ..
추상 팩토리 패턴은 팩토리 패턴과 비슷한듯 하지만 약간의 차이가 있다. 비슷한 특성을 가진 객체를 생성하려 할 때는 팩토리 메소드 패턴을 사용해도 되지만 생성할 객체들이 몇가지 그룹으로 그룹화되는 특성이 있다면 이는 추상 팩토리 패턴을 사용하는 것이 좋다. 단점 : 인터페이스 설계부터 제대로 하지 않았을 경우, 인터페이스가 변경되면 코드에 많은 부분이 변경된다. 대부분의 디자인패턴이 이런 특성을 가진다. 스타크래프트에서 빨간색팀의 마린, 메딕, 탱크를 생성해야 하고, 다시 파란색팀의 마린, 메딕, 탱크를 생성해야 하는 예제에 적용한 것을 살펴보자. # 예제