Category프로그래밍/디자인 패턴 (4)

팩토리 패턴 (Factory Pattern)

팩토리 패턴이란 객체 생성 처리를 서브 클래스로 분리해 처리하도록 캡슐화하는 패턴 즉, 객체의 생성 코드를 별도의 클래스 / 매소드로 분리함으로써 객체 생성의 변화에 대비하는데 유용하다. 특정 기능의 구현은 개별 클래스를 통해 제공되는 것이 바람직한 설계다. 기능의 변경이나 상황에 따른 기능의 선택은 해당 객체를 생성하는 코드의 변경을 초래한다. 상황에 따라 적절한 객체를 생성하는 코드는 자주 중복될 수 있다. 객체 생성 방식의 변화는 해당되는 모든 코드 부분을 변경해야 하는 문제가 발생한다. 역할이 수행하는 작업 Product 팩토리 메소드로 생성될 객체의 공통 인터페이스 ConcreteProduct 구체적으로 객체가 생성되는 클래스 Creator 팩토리 메소드를 갖는 클래스 ConcreteCreato..

싱글턴 패턴 (Singleton Pattern)

싱글턴 패턴이란 전역 변수를 사용하지 않고 객체를 하나만 생성 하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴 역할이 수행하는 작업 Singleton 클래스에 instance라는 멤버변수를 선언하고, 생성자를 private로 선언하여 외부에 노출이 되지 않도록 합니다. 이후에 Static으로 전역에서 접근이 가능한 메소드를 생성해서 인스턴스를 반환합니다. 이 때 멤버변수에 이미 변수가 생성이 되어 있다면 해당 인스턴스를 리턴하며, 만약 인스턴스가 한번도 초기화 되지 않았다면, 생성해서 리턴합니다. 참고 생성(Creational) 패턴 객체 생성에 관련된 패턴 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다. ..

디자인 패턴의 종류

생성(Creational) 패턴 구조(Structural) 패턴 행위(Behavioral) 패턴 - 팩토리 - 추상 팩토리 - 싱글턴 - 프로토타입 - 빌더 - 어댑터 - 브리지 - 컴포지트 - 데코레이터 - 퍼사드 - 플라이웨이트 - 프록시 - 책임 연쇄 - 커맨드 - 인터프리터 - 이터레이터 - 미디에이터 - 메멘토 - 옵저버 - 스테이트 - 스트래티지 - 템플릿 메소드 - 비지터 - 팩토리 패턴 (Factory Pattern) 생성할 구상 클래스를 서브 클래스에서 결정함. - 추상 팩토리 패턴 (AbstractFactory Pattern) 클라이언트에서 구상 클래스를 지정하지 않으면서도 일군의 객체를 생성할 수 있도록 함. - 싱글턴 패턴 (Singleton Pattern) 딱 한 객체만 생성되도록..

디자인 패턴의 개념과 구조

디자인 패턴이란 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용 할 수 있는 훌륭한 해결책. "바퀴를 다시 발명하지 마라(Don't reinvent the wheel)" 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 의미이다. 패턴이란 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라 한다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다. 디자인 패턴 구조 콘텍스트(context) 문제가 발생하는 여러 상황을 기술한다. 즉, 패턴이 적용될 수..