programming/design-pattern

    [Design Pattern] 퍼사드 패턴 고찰

    퍼사드 패턴 1. 정의 퍼사드 패턴을 알아보기 전에 퍼사드의 의미를 짚어봅시다. 퍼사드 : 외관; 건물의 정면; 표면 그럼 퍼사드 패턴은 무엇일까요? 퍼사드 패턴 : 여러 서브 시스템을 간략하게 사용할 수 있게 해주는 패턴 간단히 한마디로 정리하자면, 인터페이스를 단순화하기 위해서 인터페이스를 변경하는 것입니다. 속은 보이지 않고 겉면만 볼 수 있죠. 작업 수행의 복잡성은 숨기고 사용자들에게는 간단한 인터페이스로 제공하는 패턴입니다. 그래서 퍼사드 패턴은 구름과 같다(Facade is like Cloud) 라고 표현하기도 합니다. 2. 예제 퍼사드 패턴을 아주 잘 설명해주는 사례가 있습니다. 바로 컴퓨터를 부팅하는 순간인데요. 사용자(User)는 컴퓨터가 부팅되기 위해 CPU와 Memory, HardDr..

    [Design Pattern] 어댑터 패턴 고찰

    어댑터 패턴(Adapter Pattern) 1. 정의 - 연관성 없는 두 객체 묶어 사용하기 - 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 이 패턴을 사용하면 다른 인터페이스와의 호환성 문제를 해결할 수 있습니다. 2. 의도 - 이미 제공되는 기능이 형태가 달라, 필요로 하는 형태로 변경하고자 할 때 - 활용 - 기존의 클래스를 사용해야 하나 인터페이스가 수정되어야 하는 경우 - 기존 라이브러리 모양을 달리하여 재사용하고자 할 경우 - 예제 - LED 프레임워크가 제공되어졌다. LED를 끄고 RGB 색상으로 켜고 하는 메서드들을 제공받았다. - 정리 - Object Adapter 패턴을 일반적으로 많이 사용합니다. (Adaptee를 멤버변수로 활용하는 방식) -..

    [Design Pattern] Observer Pattern

    2. Observer Pattern 옵저버 패턴 또는 번역해서 관찰자 패턴이라고 불리는 이 패턴하면 스타크래프트에 있는 프로토스 유닛이 떠오릅니다. 이 유닛은 상대의 상태를 확인하여 해당 소식을 알려줍니다. 예를 들어, 상대방이 공격 시동을 걸고 있다면 그에 대한 소식을 듣고 대비를 할 수 있겠죠? 이와 마찬가지로 옵저버 패턴이란 어떤 객체의 상태가 바뀌거나 중요한 메서드가 호출되었을 때 이와 관련된 객체들에게 소식을 전달할 수 있는 패턴입니다. 2.1 옵저버 패턴의 정의 2.1.1 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락을 하고 연락받은 객체에서는 자동으로 내용이 갱신되도록 하는 방식입니다. 2.1.2 상태가 바뀌는 객체를 주제(Subject)라고 하고, 그 주제의 상태에 의존..

    [Design Pattern] Strategy Pattern

    1. Strategy Pattern 전략(Strategy) 이란? 어떤 특정한 목적을 달성하기 위해 일을 수행하는 방식을 말합니다. 예를 들어, 비즈니스나 로직 혹은 문제를 해결하기 위한 알고리즘이 해당됩니다. 패턴을 배우기 전에 하나의 프로그램을 만들 때, 객체지향의 원리로 프로그래밍을 한다고 하더라도, 그것이 유연하다고 볼 수 없을 수 있습니다. 행위 = 메서드행위가 계속 바뀔 때, 행위가 늘어날 가능성이 있을 때이걸 상속으로 구현하자 하니 아래의 내부 구현 부분도 건드려야 할 부분이 많아서OCP의 원칙이 어긋난다.그래서 상속보다는 구성을 통해서(레퍼런스 변수) 행위를 객체화해서 행위를 사용하는 객체변수니까 값을 바꿀 수 있다. 행위 클래스를 따로 만듦으로써~? ex. 메서드|행위|function의 ..