본문 바로가기
728x90

Core/디자인패턴3

디자인 패턴 디자인 원칙 - 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리한다. - 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. - 상속보다는 구성을 활용한다. - 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결한하는 디자인을 사용해야 한다. - 클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀 있어야 한다. (OCP : Open-Closed Principle) - 추상화된 것에 의존하도록 만들어라. 구상클래스에 의존하도록 만들지 않도록 한다. - 최소 지식 원칙 - 정말 친한 친구하고만 얘기하라. (다음 네 종류의 객체의 메서드만 호출한다. 1. 객체 자체 / 2. 메서드에 매개변수로 전달된 객체 / 3. 그 메서드에서 생성하거나 인스턴스를 만든 객체.. 2024. 3. 20.
디자인 패턴 범주 생성 패턴 : 객체 인스턴스를 생성하는 패턴으로, 클라이언트와 그 클라이언트가 생성해야 하는 객체 인스턴스 사이의 연결을 끊어주는 패턴입니다. (싱글턴, 빌더, 프로토 타입, 추상 팩토리, 팩토리 메소드) 행동 패턴 : 클래스와 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다루는 패턴입니다. (템플릿 메소드, 비지터, 중재자, 반복자, 싱글턴, 인터프리터, 역할변경, 전략, 상태, 옵저버, 메먼토) 구조 패턴 : 클래스와 객체를 더 큰 구조로 만들 수 있게 구성을 사용하는 패턴입니다.(데코레이터, 컴포지트, 프록시, 퍼사드, 플라이웨이트, 어댑터, 브리지) 클래스 패턴 : 클래스 사이의 관계가 상속으로 어떻게 정의되는지를 다룹니다. 클래스 사이의 관계는 대부분 컴파일할 때 결정됩니다. (템플릿 메.. 2022. 5. 8.
객체 지향 원칙 바뀌는 부분은 캡슐화한다. 상속보다는 구성을 활용한다 구현보다는 인터페이스에 맞춰서 프로그래밍한다 서로 상호작용하는 객체사이에는 가능하면 느슨한 결합을 사용해야 하낟 확장에는 열려 있어야 하지만, 변경에는 닫혀 있어야 한다(OCP) 추상화된 것에 의존하게 만들고, 구상 클래스에 의존하지 않게 만든다 어떤 클래스가 바뀌는 이유는 하나뿐이어야만 한다. 반복자 패턴 : 컬렉션의 구현 방법을 노출하지 않으면서 집합체내의 모든 항목에 접근하는 방법을 제공한다. 컴포지트 패턴 : 객체를 트리구조로 구성해서 부분-전체 계층구조를 구현한다. 컴포지트 패턴을 사용하면 클라이언트에서 개별객체와 복합객체를 똑같은 방법으로 다룰 수 있다. 2022. 4. 17.
728x90