본문 바로가기
반응형

2023년 이전/디자인 패턴8

디자인 패터 - 옵저버 패턴(Observer Pattern) 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴입니다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용됩니다. 한객체의 상태가바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. 옵저버 패턴의 그 구성을 보면 위의 다이어그램과 같습니다. Oserver - 데이터 변경을 통보 받는 인터페이스. 즉 Subject에서 Observer 인터페이스의 update를 호출하여 ConcreateSubject의 데이터 변경을 ConcreteObserve.. 2019. 11. 18.
디자인 패턴 - 커맨드 패턴(Command Pattern) Command 패턴이란 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴을 말합니다. 즉, 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용합니다. 그리고 커맨드 패턴에는 명령(command), 수신자(receiver), 발동자(invoker), 클라이언트(client)의 네개의 용어가 항상 따릅니다. 커맨드 객체는 수신자 객체를 가지고 있으며, 수신자의 메서드를 호출하고, 이에 수신자는 자신에게 정의된 메서드를 수행합니다. 커맨드 객체는 별도로 발동자 객체에 전달되어 명령을 발동하게 합니다. 발동자 객체는 필요에 따라 명령 발동에 대한 기록을 남길 수 있습니다. .. 2019. 11. 15.
디자인 패턴 - 싱글턴 패턴(Singleton Pattern) 싱글턴 패턴이란 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴. 하나의 인스턴스만을 생성하며, getInstance 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행한다. 작성 방법은 다음과 같습니다. Java public class SingleTon { private static SingleTon mSingleton; public static SingleTon getInstance(){ if(mSingleton == null){ mSingleton = new SingleTon(); } return mSingleton; } } Kotlin class SingleTon{ companion object { var mSingleT.. 2019. 11. 14.
디자인 패턴 - 스트래티지 패턴 (strategy pattern) 개발자로 (글을 쓰고 있을 당시) 5년차에 접어들었는데, 딱히 패턴의 중요성을 인식하지 못하여 맨날 사용하는 패턴으로 개발을 하고 있었습니다. 하지만 한가지 패턴으로만 개발하는데 한계를 느끼게 되어 새로운 패턴들을 공부해보기로 하였습니다. 그래서 그 첫번째로 전략적 패턴(스트레티지 패턴)에 대해 알아보겠습니다. 스트래티지 패턴은 행위에 대한 알고리즘군을 만들고 각각의 캡슐화 하여 교환해서 사용할 수 있도록 만드는 패턴입니다. 즉, 전략적으로 쉽게 필요한 부분을 쉽게 변경하도록 하는 패턴입니다. (여기서 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙, 문제를 해결하는 알고리즘 등을 말합니다.) 이 패턴의 디자인원칙은 1. 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부.. 2019. 11. 13.
반응형