디자인 패턴(구) 26

빌더(Builder) 패턴이란?

이번에는 빌더 패턴에 대해서 배울것이다. 이번 빌더 패턴을 공부하면서 떠오른 생각은 전에 내가 작성했던 회사 코드에 이것을 적용했으면 더 좋앗을것 싶은 것이 있다. 그래서, 적용을 해보고 어떤식으로 적용을 했으면 더 좋았을지 고민하려고 한다. 1. 빌더 패턴이란? 의도 복잡한 객체를 생성하는 방법과 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공할 수 있다. 다시 말하면, 동일한 프로세스를 거쳐 다양한 구성의 인터페이스를 만드는 방법을 정의한다. 이 빌더 패턴을 통해 우리는 객체를 만드는 프로세스를 독립적으로 분리할 수 있다. 사용 시기 복합 객체의 생성 알고리즘이 이를 합성하는 요소 객체들이 무엇인지 이들의 조립 방법에 독립적일 때 합성..

추상 팩토리 패턴(Abstract Factory Pattern)이란?

이번 시간에는 추상 팩토리 패턴에 대해 알아보고자 한다. 무언가 팩토리 메서드 패턴과 굉장히 유사하지만 차이점이 무엇인지를 생각하며 보는것이 포인트다. 1. 추상 팩토리 패턴이란? 의도 상세화된 서브클래스를 정의하지 않고도 서로 관련성이 있거나 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공 즉, 서로 관련있는 여러 객체를 만들어주는 인터페이스를 제공하는 것이다. 얼핏 보면 팩토리 메서드 패턴과 매우 유사하지만 팩토리를 사용하는 초점이 클라이언트에 맞추어 져 있다고 생각하며 된다. 팩토리 메서드 패턴이 기억이 안나거나 잘 모르겟으면 전에 정리한 내용이 있으니 참고하면 좋다. https://tech-monster.tistory.com/148 팩토리 메서드의 구조는 다음과 같다. 추상 팩토리의 구..

팩토리 메서드(Factory Method) 패턴

1. 아이디어 캐치 공대 키메라가 공장을 운영하고 있다고 하자.(역시 상상이 최고야... ) 공장에서는 자동차 모델 1이라는 것을 생산하고 있다. 차체 Frame Stamping, 조립, 그리고 도색까지 모든 차의 제작 과정을 아우르고 있다. 그래서 공대 키메라의 공장의 매출이 상승해서 새로운 모델을 제작하려고 한다. 이 자동차 모델 2는 기존 모델에서 핵심 기능만 다를 뿐 다른 것은 전부 동일하다. 그러면 우리는 기존 자동차 모델 1을 제작하기 위해 사용한 공정을 동일하게 사용하고, 일정 부분에서 자동차 모델 2를 위해 기능을 추가혹은 수정하면 된다. 결국, 잘 추상화 되어있는 factory 를 구현한다면 문제는 해결된다. 의도 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생..

싱글톤(Singleton) 패턴

1. 싱글톤 패턴이란? 인스턴스를 오직 한개만 제공하는 클래스 This pattern involves a single class which is responsible to create an object while making sure that only single object gets created. This class provides a way to access its only object which can be accessed directly without need to instantiate the object of the class. reference : https://www.tutorialspoint.com/design_pattern/singleton_pattern.htm *인스턴스 : 객체 지향..

객체 지향 5대 원칙

최근 디자인 패턴 관련해서 객체 지향 설계의 방법론에 대해서 공부하고 있는데 생각해보니 객체 지향의 5개 원칙에 대해서 익히 들었지만 이를 제대로 이해하고 있지는 않은 것 같았다. 그래서 생각난 김에 정리하려고 한다. 사실... 어제 밤에 정리했는데 나의 실수로 정리한 내용을 전부 지워버리고 말았다... 너무 가슴이 아프지만 다시 정리해보겠다... 앞으로 정리할 내용은 다음 사이트를 참고했다. 출처 : https://www.baeldung.com/solid-principles 1. What is SOLID? Simply put, Martin and Feathers' design principles encourage us to create more maintainable, understandable, an..

디자인 패턴의 종류

필자는 디자인 패턴에 대해 관심을 가지려고 하는데 어떤 방식으로 디자인 패턴을 구분하고 어떤 종류가 있는지 잘 몰랐다. 그래서 인터넷에서 이에 대한 정보를 추합해 정리하고자 한다. 출처 : https://www.geeksforgeeks.org/design-patterns-set-1-introduction/ 출처 : https://sourcemaking.com/design_patterns 1. What is Design Pattern 디자인 패턴은 소프트웨어 디자인에서 발생하는 공통 문제에 일반적이고 재사용 가능한 해결책을 제시한다! 패턴은 전형적으로 클래스와 객체 사이의 관계와 상호작용을 보여준다. 이 아이디어는 잘 검사되고 입증된 개발 패러다임을 제공함으로 개발 프로세스를 빠르게 한다. 디자인 패턴은 ..