디자인 패턴 – 컴퍼지트 패턴
컴퍼지트 패턴: 부분이 변화하더라도 기존 코드를 변경시키지 않도록 하는 패턴 기존 코드: 컴퓨터 클래스는 키보드, 본체, 모니터 클래스와 Composition 관계이다. 문제점: 만약 […]
소프트웨어 설계 및 분석
컴퍼지트 패턴: 부분이 변화하더라도 기존 코드를 변경시키지 않도록 하는 패턴 기존 코드: 컴퓨터 클래스는 키보드, 본체, 모니터 클래스와 Composition 관계이다. 문제점: 만약 […]
팩토리 메소드 패턴: 객체의 생성 코드를 별도의 클래스, 메소드로 분리함으로써 객체 생성 방식의 변화를 대비하는데 유용한 패턴 기존 코드: ElevatorManager는 여러 엘리베이터 […]
템플릿 메소드 패턴: 전제적으로 동일하면서 부분적으로 상이한 문장을 가지는 메소드의 코드 중복을 최소화할 때 유용한 패턴 기존 코드: 엘리베이터 제어 시스템에서 모터를 […]
데코레이터 패턴: 기본 기능에 옵션을 추가하는 경우 유용한 패턴 기존 코드: RoadDisplay는 기본 도로 표시 기능을 제공하는 클래스이다. RoadDisplayWithLane은 기본 도로 표시 기능에 […]
옵저버 패턴: DataProvider와 DataConsumer가 나눠져 있는 경우 사용하는 패턴 기존 코드: ScoreRecord는 성적을 업데이트하는 객체로 DataProvider에 해당됨, DataSheetView는 성적을 통보받는 객체로 DataConsumer에 […]
커맨드 패턴: 실행될 기능을 캡슐화하는 패턴 (실행될 기능을 캡슐화하여 이벤트를 발생시키는 클래스를 변경하지 않고 코드의 재사용성을 높이는 패턴) 기존 코드: 버튼을 누르면 […]
스테이트 패턴: 상태를 캡슐화하는 패턴 상태 머신 다이어그램: 상태와 상태 변화를 모델링하는 도구(상태: 객체가 가질 수 있는 어떤 조건이나 상황) 기존 코드: […]
싱글톤 패턴두 개 이상의 인스턴스가 생성되는 것을 막고, 인스턴스가 사용될 때에는 동일 인스턴스를 사용하게 하는 패턴 Example)하나의 프린터만 만들어서 사용해야 되는 상황 […]
스트래티지 패턴행위(알고리즘)를 클래스로 캡슐화해서 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 Example)태권브이와 아톰이 로봇 클래스를 상속하는 상황 문제점:1) 태권브이나 아톰의 공격(attack) […]
SOLID 원칙객체지향 프로그래밍 설계의 기본 원칙 1. SRP (Single Responsibility Principle)단일 책임의 원칙, 객체는 단 하나의 책임만을 가져야 한다 Example)학생 클래스의 역할– […]