본문 바로가기

객체지향개발론6

객체지향개발론-싱글톤패턴까지 정리 2015. 11. 27.
객체지향개발론 4장 데코레이터 패턴 5장 데코레이터 패턴데코레이터는 장식하는 원래 객체와 동일한 타입의 객체임->장식된 객체를 원래 객체 대신 사용 가능함한 객체를 여러 개의 데코레이터로 장식할 수 있음동적으로 실행시간에 객체를 장식할 수 있음보통 장식된 순서가 중요하지 않음 ) --> 객체에 동적으로 새로운 책임(행위,상태)를 추가할 수 있음(wrapper)위임을 통한 문제해결 ) --> 데코레이터들을 대표하는 추상클래스를 정의하면 얻어지는 장점: 장식자와 장식될 수 있는 타입의 구분이 명확해짐. 장식자가 반드시 정의해야 하는 메소드를 지정할 수 있음 ) --> 동일한 요소를 여러번 적용 가능해야 하면 전략패턴으로 하면 안됨또 전략패턴은 특정 메소드의 기능만 변경하지만 장식자 패턴은 여러 메소드의 기능을 변경할 수 있음 ) --> 패턴의.. 2015. 11. 27.
객체지향개발론 4장 옵저버패턴 4장. 옵저버 패턴옵저버 패턴 : 객체가 관심있어 하는 사건의 발생을 알려주어야 할 때. 관찰하는 객체가 능동적으로 관찰하는 것이 아니라 관찰대상으로부터 어떤 사건이 발생하였을 때 수동적으로 통보해주길 기다림 ) --> 한 객체와 다중 객체간의 의존관계를 정의하며 한 객체에 의존하는 모든 객체들은 의존하는 객체의 상태가 변하면 항상 자동으로 통보를 받음 ) --> Subject는 Observer에 대해 알고있는 유일한 정보는 Observer interface를 구현하고 있다는 점임.(update 메소드를 가지고있음)새 Observer를 쉽게 추가할 수 있으며, 기존 Observer를 쉽게 제거할 수 있음.새로운 종류의 Observer를 추가하기 위해 Subject를 변경할 필요가 없음.Observer나 .. 2015. 11. 27.
객체지향개발론_3장.전략패턴 3장. 전략 패턴전략 패턴 : 알고리즘의 군을 정의하고 캡슐화해주며, 서로 언제든지 바꿀 수 있도록 해줌. ) --> 디자인패턴 : 코드 설계는 예술적 요소가 있으며, 충분한 경험 없이는 효과적인 코드를 만들기 쉽지 않음. 하지만 경험많은 개발자가 유사한 문제에 대해 이미 만든 해결책이 있으며, 설계 패턴은 이와 같은 해결책을 말함 ) --> 패턴의 종류생성: 객체의 생성과 관련(생성하는 객체의 구체적인 클래스와 이들의 생성방법을 숨김)행위 : 객체와 객체의 상호작용 관련 (보통 상속보다는 포함관계 사용)구조 : 객체간의 정적인 구조적 관계와 관련됨 ) --> 패턴을 사용하는 이유유연성 : 코드의 유연성 확보(객체간의 올바른 추상화 제공, 객체간의 낮은 결합성 제공)재사용성 : 코드의 재사용 가능성을 높.. 2015. 11. 27.
2장. 객체지향 개발 절차와 UML 2장. 객체지향 개발 절차와 UML소프트웨어 개발 과정 : 폭포수 모델. 문제정의,요구사항 분석(사용자 요구사항 분석, 기능/비기능요구사항 분석,사용 시나리오 분석,사용자 인터페이스 분석, 데이터 분석), 설계(OOD:클래스도출, 클래스간 관계 설정, 스퀸스 다이어그램), 구현, 통합, 시험/평가(구현전에 방법 결정 또는 테스트 프로그램 개발), 배포(최근 오픈 마켓 때문에 학생 때 배포/운영이 용이함), 유지보수 ) --> 반복적 개발 방법론 : 반복이라고 하는 일련의 짧은 고정된 길이의 작은 프로젝트 단위로 전체 개발을 나누어 진행하며, 각 반복은 독립적으로 테스트하며, 통합되어 실행될 수 있는 전체 시스템의 부분 요소임장점 : 능동적으로 대응하기 쉬움 ) --> 에자일 개발 방법론 : 기존 전통 방.. 2015. 11. 27.
객체지향개발론 1장 객체지향 프로그래밍 개념 재검토 강의목표 : 설계 패턴을 통해 기존 개발자의 경험 공유. 소프트웨어 개발에 설계패턴 활용 능력 배양. 객체지향 설계 및 구현 능ㄹ력 배양. 리펙토링 개념 이해. 라이브러리 및 코드 이해 및 분석 능력 배양설계패턴 : 알렉산더가 건축학 분야에서 처음 제시함. 설계패턴은 자료구조, 알고리즘보다도 상위개념 ) --> 1장. 객체지향 프로그래밍 개념 재검토컴퓨터가 어떤 유용한 일을 하기 위해서는 그것을 할 수 있도록 방법을 알려주어야 함.보다 편리하게 방법을 알려주기 위해 고급프로그래밍 언어를 개발하여 사용하고 있음.방법이란 보통 절차를 말함. 따라서 초기 프로그래밍 기법은 절차위주였음. 즉, 어떤 함수들을 만들어야 하는지가 초점이였음.OOP는에서는 주어진 문제를 해결하기 위해 객체로 모델링할 수 있는 것들을 .. 2015. 11. 27.