Back-end/디자인패턴 3

디자인 패턴 입문

생성 구조 행동 연관성을 알아내는데 도움 패턴들간의 참조 관계를 이용 패턴 마다 관련된 패턴을 정의는데 어떻게 다른 패턴들과 결합되었는지, 어떤 패턴들이 서로 잘 작용하는지 알아내는 통찰력 제공 문제 중심으로 패턴에 접근 재사용 가능한 객체지향 소프트웨어를 개발하면서 일어나는 일반적인 문제들을 이해하고 난 후 이런 문제들응 해결하는 패턴을 찾아 읽는 것 가장 일반적인 패턴 추상 팩토리 패턴 팩토리 메서드 패턴 적응자 패턴 감시자 패턴 복합체 패턴 전략 패턴 장식자 패턴 템플릿 메서드 패턴 "유연하고 재사용가능한 설계를 처음부터 정확하게 하기는 불가능 매우 어렵" "전문가들은 초보자처럼 모든 문제를 처음 기초단계에서 해결하려고 하지 않는다. 전에 사열했던 해결책을 다시 사용" "결국에는 많은 객체디향 시스..

MVC 패턴

디자인 패턴? 구현 SW 개발방법을 공식화 한것 1. MVC 패턴이란 Model & View & Controller 애플리 케이션을 3가지로 역할로 구분한 개발 방법론 모델 1. JSP(view) + javaBean(Service) 뷰와 로직이 섞인다 장점 단점 구조가 단순 출력과 로직 코드가 섞여 JSP코드가 복잡해진다 프런트와 백엔드가 혼재되어 분업이 용이하지 않다 유지보수가 어렵다. 모델 2. [JavaBean(Service) + JSP(view) + 서블릿(controller)] MVC구조 장점 단점 뷰와 로직의 분리로 모델1에 비해 덜 복잡하고, 분업이 용이하며, 유지보수가 쉽다. 습득이 어렵고 작업량이 많다 MVC흐름 1. 사용자는 원하는 기능을 처리하기 위한 모든 요청을 컨트롤러에 보낸다. ..

OCP 와 전략 패턴

1. if-else의 문제점 변경, 확장이 될 수록 코드가 복잡해진다 코드를 수정하거나 수정할 위치를 찾는데 점점 오래 걸린다. 실수로 추가하지 않고 누락하는 부분이 생길 가능성이 있다. -> 유지보수가 어려워 진다!! 계속되는 기능 추가 -> 복잡도 증가 -> 추가, 수정이 힘들다. 2. OCP (open close principle, 개방폐쇄의 원칙) 소프트웨어 구성 요소(컴포넌트, 클래스, 모듈, 함수)는 확장에 대해서는 개방돼야하지만 변경에 대해 폐쇄 되어야한다. 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다는 뜻이다. 적용방법 - 1 상속(is-a) 깨지기 쉬운 상위 클래스 문제 : 상속은 하위클래스가 상위클래스의 기능과 밀접하기 때문에 상위가 바뀌면 하위에 영향이..