1.Sychronized - 가장 간단하지만 약간의 성능 저하가 있음2.Eager Initialization(이른 초기화 방법) - 생성 객체를 미리 만들어놓고 쓰지 않으면 앱 로딩 시 많은 자원을 소모함3.Double Checked Locking - 동기화 작업을 인
Factory Method 패턴이란 ? concrete creators(생산자)와 concrete product(제품)로 이루어져있는 패턴 클래스의 인스턴스를 만들때 서브클래스에서 결정하게 만드는 패턴 Factory Method의 장단점 장점 : OCP 원칙을 잘
Abstract Factory 패턴이란 ? 서로 비슷한 여러 객체들을 구체적인 클래스에 의존하지 않고 만들어줄 수 있게 해주는 패턴 Factory Method와 Abstract Factory 차이점? 1. Factory Method는 Product를 생성할 때 F
빌더 패턴은 복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여 절차나 제한을 제공하는 패턴이다장점 : Setter를 사용하지 않기 때문에 객체가 변경되는 일을 최소화할 수 있다.절차에 따라 진행되기 때문에 매개변수가 많아져도 가독성을 높일 수 있다.생성 과정
장점 :객체를 생성할 때 복잡한 과정을 생략하고 보다 편리하게 복제해서 사용할 수 있다.(객체 생성의 비용을 줄일 수 있다)초기화 코드를 불필요하게 사용할 필요가 없다.생성되는 객체를 캡슐화하여 정보를 숨길 수 있다.단점 :clone() 메서드는 Object 클래스의
형태는 매개변수의 형과 Return 형이 다르게 나옴장점 : 기존 코드를 변경하지 않고 인터페이스 구현체를 만들어서 재사용이 가능함(Ocp)코드가 하던 일과 특정 인터페이스 구현체로 변환하는 작업을 각기 다른 클래스로 분리하고 관리할 수 있음. (단일 책임 원칙)단점
장점 :추상적인 코드를 코드를 구체적인 코드 변경없이도 확장이가능함(ocp) 추상적인 코드와 구체적인 코드 분리할 수 있음 단점 :계층구조가 늘어서 복잡도증가한다.특징은 클라이언트는 추상적인 계층구조만 사용 implementation 간접 사용클라이언트가 추상화되
장점 :복잡한 트리구조를 좀 더 편리하게 사용이 가능하게 해준다. 다형상과 재귀를 활용해서 코드를 유리하게 사용할 수있다. 클라이언트 코드를 변경하지 않고 새로운 타입의 코드(기능)를 사용할 수 있다.단점 :공통된 인터페이스를 정의 해야하기 때문에 억지로 객체들
장점 : 새로운 클래스를 생성하지 않고 기존의 기능을 그대로 조합이 가능하다 (단일책임 원칙,ocp,di 역전 원칙등...)런타임에 동적으로 기능들을 조합하거나 변경할수있다.단점 :데코레이터들을 조합할때 코드가 복잡해질 수 있다.클라이언트는 Component를 사용해서
장점 :서브 시스템에 대한 의존성을 한곳으로 모을 수 있다.사용자입장에서 간단하고 쉽게 사용가능하다.단점 :퍼사드 클래스가 서브 시스템에 대한 모든 의존성을 가지게 된다.클라이언트는 Component를 사용해서 실제 객체를 사용하게 된다.출처 : https:/
장점 : 애플리케이션에서 사용하는 메모리를 줄일수 있다단점 : 코드의 복잡도가 증가한다클라이언트는 Flyweight를 사용하기위해서 FlyweightFactory를 이용해서 실제 객체를 사용하게 된다.출처 : https://ducmanhphan.github.i
Proxy 패턴이란 Proxy는 영어로 '대리인'이라는 뜻을 가지고 있다. 여기에서도 그뜻이 적용되어 대상객체가 아닌 Proxy객체가 대신 그일을 처리하는것이다. 그럼 원래 객체는 필요없는것이냐? 그건 아니다 Proxy가 실제로 일을 처리하는 것이 아닌 Proxy를
장점 : client 코드를 변경하지 않고 체인 추가 핸들러마다 자신이 해야할 코드 만 가지고있다. 체인을 원하는대로 다양하게 조립할 수 있다. 단점 : 디버깅하기 번거롭다
Command 패턴이란 Proxy는 영어로 '대리인'이라는 뜻을 가지고 있다. 여기에서도 그뜻이 적용되어 대상객체가 아닌 Proxy객체가 대신 그일을 처리하는것이다. 그럼 원래 객체는 필요없는것이냐? 그건 아니다 Proxy가 실제로 일을 처리하는 것이 아닌 Proxy
Interpreter 패턴이란 자주 해결해야할 문제들을 언어,문법,표현식 등과 같이 형태로 만들어주는 패턴 정규표현식이 -> interpreter 패턴이라고 볼수있다. 자주등장하는 문제를 간단한 언어로 정의하고 재사용하는 패턴 -반복되는 문제 패턴을 언어 또는 문