Design Pattern

    Java :: 팩토리(Factory) 메소드 패턴

    Java :: 팩토리(Factory) 메소드 패턴

    팩토리(Factory) 메소드 패턴 객체 생성 처리를 서브 클래스로 분리하여 처리하도록 캡슐화하는 패턴 특정 입력값에 따라 다른 객체를 생성해야 할 때, 분기에 따라서 객체를 생성할 때 팩토리 메소드 패턴을 적용하면 좋다. 조건에 따라 객체를 생성하는 공장을 만드는 느낌 ! 장점 객체간의 결합도가 낮아지고 유지보수에 용이해짐 객체들을 한 곳에서 관리할 수 있게 됨 메소드로 작동하기 때문에 리턴 값으로 서로 다른 객체를 반환할 수 있음 단점 불필요하게 많은 클래스를 정의하게 될 수 있음 예시 코드 팩토리 메소드 패턴 적용 전 abstract class Item { } class OrangeJuice extends Item { OrangeJuice() { System.out.println("오렌지쥬스 생성"..

    Java :: 싱글톤(Singleton) 패턴

    Java :: 싱글톤(Singleton) 패턴

    싱글톤(Singleton) 패턴 클래스의 인스턴스가 하나임을 보장하고, 접근할 수 있는 전역적인 접근점 제공 ! 딱 하나의 인스턴스만 생성. 생성된 인스턴스를 어디서든 참조할 수 있게 한다. 실제로 생성되는 인스턴스는 하나 ! (객체 생성을 한번으로 제한) 생성자가 또 호출되어도 이미 생성된 인스턴스를 리턴해주는 방식. 장점 메모리 낭비 방지 싱글톤 인스턴스를 사용하면 다른 인스턴스 간에 데이터 공유가 쉬움 오직 하나의 인스턴스가 존재하는 것을 보증하기에 개발 시 실수를 줄일 수 있음 단점 전역변수보다 사용하기 불편 싱글톤 역할이 커지면 결합도가 높아져 객체지향 설계원칙에서 어긋날 수 있음 멀티쓰레드 환경에서 동기화 처리를 하지 않으면 컨트롤이 어려움 인스턴스의 파괴 시점을 컨트롤 하기 어려움 예시 코드..

    Java :: 디자인 패턴

    Java :: 디자인 패턴

    디자인 패턴 디자인 패턴이란? 설계 문제에 대한 해답을 문서화 하기 위해 고안한 형식 반복되는 패턴의 원리에 대한 개념을 공학적인 측면에서 도입한 것 특정 코드의 일부분이 아님 라이브러리처럼 프로그램에 붙여넣을 수 없음 디자인 패턴을 도입하는 것이 해답이 아니다. 잘못 도입하면 문제가 될 수도 있음 장점 프로그램 전체 라인을 읽지 않아도 쉽게 인식하고 요점 파악 가능 추상적인 수준에서 다른 팀원들과 의사소통 효과적으로 할 수 있음 프로그래밍 언어, 개발중인 프로그램에 관계 없이 재사용 및 확장 가능 GoF - Gang of Four 객체지향 분야의 문제점을 분석해 24개 패턴으로 분류 기존 객체지향 설계 시 발생했던 문제를 카탈로그화 하여 패턴 정리 대규모 프로젝트의 진행에서 가장 중요한 요소는 통일된 ..