Design Pattern 일종의 설계 기법/설계 방법 목적 SW 재사용성, 호환성, 유지 보수성 보장 특징 프로젝트에 항상 적용해야 하는 것은 아니지만 추후 재사용, 호환, 유지 보수 시 발생하는 문제 해결을 예방하기 위해 만들어둔 패턴 SOLID 원칙(객
클래스를 바로 사용할 수 없는 경우가 있음(다른 곳에서 개발했다거나 수정할 수 없을 떄)중간에서 변환 역할을 해주는 클래스가 필요 ➡️ 어댑터 패턴사용 방법 : 상속호환되지 않은 인터페이스를 사용하는 클라이언트 그대로 활용 가능향후 인터페이스가 바뀌더라도 변경 내역은
애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴➡️ 하나의 인스턴스만 생성하여 사용하는 디자인 패턴생성자가 여러 번 호출돼도, 실제로 생성되는 객체는 하나이며 최초로 생성된 이후에 호
어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메소드의 코드 중복을 최소화할 때 유용전체적인 알고리즘은 상위 클래스에서
객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스가 내리도록 하는 패턴➡️ 하위 클래스에서 팩토리 메소드를 오버라이딩해서 객체를 반환하는 패턴어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때생
옵저버 패턴(Oberver Pattern) > 상태를 가지고 있는 주체 객체 & 상태의 변경을 알아야 하는 관찰 객체 (1 대 1 or 1 대 N 관계) 서로의 정보를 주고 받는 과정에서 정보의 단위가 클수록 객체들의 규모가 클수록 복잡성이 증가하게 된다. 이때 가
행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴➡️ 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴Strategy
구조 패턴 중 하나로 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴➡️ 단일 객체와 복합 객체 모두 동일하게 다룰 수 있음전체-부분의 관계를 갖는 객체들 사이의 관계를 정의할 때 유용클라이언트는 전체와 부분을 구분하지 않고 동일한 인터페이스 사