반응형 Design Pattern/생성 패턴(Creational patterns)5 Prototype Pattern, 프로토타입 패턴 프로토 타입 패턴이란? 객체를 생성할 때 기존 객체를 복제하여 새로운 객체를 생성하는 방법을 제공하는 패턴이다. 이를 통해서 객체의 복잡한 생성 과정을 피하고, 기존 객체의 상태를 유지하며 새로운 객체를 생성할 수 있게 된다. 프로그래밍에서 변경이 일어나는 부분을 캡슐화한다는 따른다. 왜 사용하나요? 객체 생성 과정이 복잡하거나 시간이 많이 걸릴 경우, 기존 객체를 복제하여 새로운 객체를 생성하는 것이 효율적이기 때문이다. 객체의 클래스에 종속되지 않고, 복제를 통해 동적으로 객체를 생성할 수 있다. 객체의 상태를 유지한 채 다양한 상태의 객체를 생성할 수 있다. 언제 사용하나요? 객체 생성 비용이 크고 유사한 객체를 자주 생성해야 할 때 객체의 클래스 계통이 복잡하고 변경이 빈번하게 일어날 때 문제점 .. 2023. 7. 11. Builder Pattern, 빌더 패턴 빌더 패턴 (Builder Pattern) 빌더 패턴이란? 객체를 단계별로 생성할 수 있게 만들어주는 패턴이다. 왜 사용하나요? 생성자의 의미가 좀 더 명확해진다. 재사용을 높인다. 단일 책임의 원칙 (생성만을 담당하는 빌더가 생김) 클래스에 여러 필드들이 있고 생성자에 너무 많은 파라미터를 두게 되면 호출 시에 매우 지저분한 코드가 될 것이다. 또한 파라미터를 부분적으로 사용하지 않는 경우 오버로딩을 통해서 해결할 수 있지만 생성자의 수가 기하급수적으로 늘어나게 될것이다. 빌더 패턴은 이러한 경우에 사용하면 좋은 효과를 볼 수 있다. 예를 들어 집을 만든다고 했을 때 창문의 형태, 수영장 여부, 크기, 주변 나무 개수, 지붕의 형태, 집의 형태 등등 다양한 조건이 올 수 있다. 이 것을 한 번에 만든다.. 2023. 6. 20. Abstract Factory Pattern, 추상 팩토리 패턴 추상 팩토리 패턴(abstract factory pattern) 추상 팩토리 패턴이란? 추상 팩토리 패턴은 관련된 여러 객체를 일관된 방식으로 생성하는 인터페이스를 제공하는 패턴이다. 즉, 관련성 있는 여러 종류의 객체를 생성하는 경우 사용된다.. 추상 팩토리 패턴을 사용하면 구체적으로 어떤 클래스의 인스턴스를 사용하는지 클라이언트에게 감출 수 있다. 이 추상 팩토리 패턴을 이해하기 위해서는 팩토리 메서드 패턴을 이해해야 한다. 왜냐면 팩토리 메서드 패턴에서 발전한 것이 추상 팩토리 패턴이기 때문이다. --> 팩토리 메서드 패턴 학습하러 가기 팩토리 메서드 VS 추상 팩토리 팩토리 메서드 추상 팩토리 의도 단일 유형 객체 생성 관련 유형 그룹으로 관리 구현 방법 추상 클래스 인터페이스 다만, 구현방법은 .. 2023. 6. 10. Factory Method Pattern, 팩토리 메서드 패턴 팩토리 메서드 패턴이란? 팩토리 메서드 패턴은 부모(상위)클래스에 알려지지 않은 추상 클래스를 생성하는 패턴으로 자식(하위)클래스가 직접 어떤 객체를 생성할지 결정하도록 하는 패턴! 즉, 객체 생성을 위한 패턴으로 생성과 사용의 분리를 통해서 유연하게 객체를 생성할 수 있게 된다. 또한 객체 생성에 필요한 과정들을 템플릿처럼 정해놓고 각 과정을 구현할 수 있다. 왜 사용하나요? 생성자 (Creator)와 구현 객체(concrete product)의 강한 결합을 피함 객체가 생성될때 반복적으로 할 일을 수행시킬 수 있음 캡슐화, 추상화를 통해 생성되는 객체의 구체적인 타입 은닉 단일 책임 원칙 (SRP) 준수 객체 생성 코드를 한 곳 (패키지, 클래스 등)으로 이동시켜 코드를 유지보수하기 쉽게할 수 있으므.. 2023. 6. 7. SingleTon Pattern , 싱글톤 패턴 싱글톤 패턴 (Single Ton) 싱글톤 패턴이란? 싱글톤은 클래스를 구현할때 메모리상에 하나의 인스턴스만 존재하게 하여 사용하는 패턴 왜 사용 하나요? 객체를 구현할때 메모리 리소스가 사용된다. 한개의 전역 객체로 만들어 둔다면 이러한 리소스낭비를 줄일 수 있기 때문입니다! 어디에서나 접근 가능하도록 만들기 위함입니다. 언제 사용하나요? 데이터베이스 커넥트 풀과 같이 같은 객체를 자주 사용하는 경우에 사용하면 좋아요! 문제점 싱글톤에 많은 역할들이 담기게 되면 객체지향원칙에 어긋나게 된다. => 유지보수가 힘들어 진다. 만약 멀티 스레드 환경에서 동기화 문제를 처리하지 않는다면 2개가 생기는 문제가 발생할 수 있습니다. 구현 방법 (자바) 다른 객체들이 싱글턴 클래스와 함께 new 연산자를 사용하지 .. 2023. 6. 7. 이전 1 다음 반응형