본문 바로가기
  • soobinhand의 기술 블로그
728x90

Computer Science/디자인 패턴10

[디자인 패턴] Template Method Pattern 목적 알고리즘의 뼈대를 정의하고 일부를 서브 클래스로 위임함. 템플릿 메소드는 알고리즘 구조를 변경하지 않고 알고리즘의 일부 내용을 서브 클래스에서 재정의할 수 있도록 함. 문제 상황 알고리즘들을 캡슐화시키면서 중복되는 코드가 여러 클래스에 존재함. 해결 방안 알고리즘의 중복되는 부분을 부모 클래스에 캡슐화시키고 달라지는 부분만 서브 클래스에서 구현. 결과 중복되는 코드를 줄임. 유지 보수에 유리함. 코드 https://github.com/Soobinhand/Design_Pattern GitHub - Soobinhand/Design_Pattern: 디자인 패턴 연습 디자인 패턴 연습. Contribute to Soobinhand/Design_Pattern development by creating an .. 2021. 12. 14.
[디자인 패턴] MVC Pattern 목적 업무 로직 및 데이터와 보이는 부분을 분리. 사용자 인터페이스 로직이 비즈니스 로직보다 더 자주 바뀐다면 MVC를 사용하는 것이 바람직함. 화면을 포함하는 사용자 인터페이스와 업무 처리 부분을 분리해서 동작할 수 있도록 함. 문제 상황 데이터와 해당 데이터를 보여주는 부분의 코드가 섞여 있음. 해결 방안 데이터와 뷰를 분리하고 이들을 연동시키는 컨트롤러를 추가. 결과 loose coupling, 재사용성 코드 https://github.com/Soobinhand/Design_Pattern GitHub - Soobinhand/Design_Pattern: 디자인 패턴 연습 디자인 패턴 연습. Contribute to Soobinhand/Design_Pattern development by creatin.. 2021. 12. 14.
[디자인 패턴] Composite Pattern 목적 부분-전체 계층 구조를 보일 수 있도록 객체들을 트리 구조로 구성. Composite pattern은 클라이언트로 하여금 각 객체와 객체의 묶음을 동일하게 다룰 수 있도록 함. 문제 상황 프로그램에서 각각의 객체 또는 계층 구조로 이루어진 객체 묶음을 다루어야 함. 해결 방안 개별 객체와 복합 객체에 대해 동일한 작업을 적용시킬 수 있도록 함. 대부분의 경우에 개별 객체와 복합 객체의 차이를 무시할 수 있도록 함. 결과 유지 보수에 유리함. 코드 https://github.com/Soobinhand/Design_Pattern 2021. 12. 14.
[디자인 패턴] Command Pattern 목적 요구사항을 객체로 캡슐화시킴. 이를 이용해서 다른 요구사항을 지닌 클라이언트를 매개변수화 시킬 수 있고, 요구사항을 큐에 넣거나 로그로 남길 수 있으며 작업 취소 기능을 지원할 수도 있음. 문제 상황 사용 객체의 API가 서로 다름. 해결 방안 실행과 요청을 분리. 결과 작은 클래스가 많아지지만, 객체 사용에 필요한 복잡성을 제거하고 감춤 코드 https://github.com/Soobinhand/Design_Pattern 2021. 12. 14.
728x90