- 객체지향 설계
- 객체
- 데이터와 행위 또는 속성과 메소드의 집합이다.
- 객체지향 방법론의 용어
- 객체 - 등급
- 클래스 - 공통속성과 행위를 가진 객체이며, 여러개의 객체가 존재한다.(밑에 예제) 그리고 객체를 인스턴스라고도함
- User user = new User(); user객체 생성, user.name으로 메모리에 할당하여 인스턴스화함
- 에메랄드, 골드, 다이아몬드 등급이 클래스이며,
- 등급안에 속성은 연봉, 점수 등의 데이터를 말한다.
- 등급안에 메소드는 사다, 팔다, 먹다 등에 행위를 말한다.
- 에메랄드, 골드, 다이아몬드 등급이 클래스이며,
- 속성 - 객체들의 값/데이터
- 연봉, 점수, 이름
- Int Salary = 5000
- Int Score = 2000
- String Name = 이충현
- 연봉, 점수, 이름
- 메소드 - 행위
- 점수를 얻다.
- public void setScore() {}
- 돈을 벌다.
- public void setEarn() {}
- 점수를 얻다.
- 상속 = Inheritance : 그대로 이어 받아서 사용
- extends
- 하나의 부모 클래스로부터 상속 받을 수 있음
- 다형성
- 오버로딩
- 같은 이름의 메소드
- 매겨변수의 타입과 갯수를 다르게함
- 오버라이딩
- extends하여 부모의 것을 재정의함
- 오버로딩
- 캡슐화
- 자료구조(속성)와 연산을 클래스안에 묶어 놓은 것 또는 하나로. 취급, 불법적인 사용으로부터 자료를 보호
- 데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 모듈을 Object(객체)
- {} 경계선을 둠
- 예제
- public void withdrawal () {
- 위에서 선언한 변수(money)로 즉, 데이터와 위에 withdrawal 함친 것
- score = money + score;
- }
- public void withdrawal () {
- 추상화
- 복잡한 현실 세계를 모델링하는 과정
- 컵, 차 와 같이 객체를 추상화하는 것 즉, 차라고하면, 차는 여러종류를 의미하며, 어느 특정에 대한 의미는 아니기에 모호하다.
- 추상기법의 종류
- 제어 추상화
- 저장 추상화
- 과정 추상화
- 복잡한 현실 세계를 모델링하는 과정
- 정보은닉
- 자료를 숨기고, 연산을 통해서 접근이 가능하다.
- 속성과 오퍼레이션을 일부 감추어 객체의 외부에서 접근 불가능하도록
- 객체 지향의 방법론
- 럼바우(Rumbaugh)
- 객동기
- 객상자
- 객체지향프로그램
- 상태다이어그램
- 자료흐름도
- 객체모델링 또는 정보모델링
- 부치법
- UML프로그램 사용
- 거시적 관점과 미시적 관점
- 코드와 요던
- E-R다이어그램
- 야콥슨
- 유스케이스
- 럼바우(Rumbaugh)
- 객체지향의 설계 원칙
- S - SRP
- 단일 책임의 원칙 - 한 클래스에 하나의 책임(기능)만 가진다.
- O-OCP
- 개방과 패쇄의 원칙 - 새로운 변경사항이 있을 때 확장에는 쉽고, 객체를 직접 수정에는 닫혀있어야 한다.
- L-LSP
- 리스코프워 치완 원칙 - 정확성을 깨뜨리지 않으면서 부모 타입으로 바꿀 수 있어야 한다.(다형성)
- 더 자세한 의미 : 부모 클래스는 차(Car)에 관련된 부분인데, 그외 상반되는 보험에 상속을 받아서 연관없이 사용되면 안된다.
- 리스코프워 치완 원칙 - 정확성을 깨뜨리지 않으면서 부모 타입으로 바꿀 수 있어야 한다.(다형성)
- I-ISP
- 인터페이스의 원칙 - 인터페이스를 용도에 맞게 적합하게 분리되어야 한다.
- admin - 관리 권한에 대한 인터페이스
- Join- 가입에 대한 인터페이스
- 인터페이스의 원칙 - 인터페이스를 용도에 맞게 적합하게 분리되어야 한다.
- D-DIP
- 의존의역전원칙 : 구체화에 의존하는 것이 아니라 추상화에 의존해야한다.
- 직접 클래스에 의존하지 말고, 그 상위 추상 클래스나 인터페이스에 상속받아야 한다.
- Impl(구현)와 service(역할)
- 구현에 의존하는 것이 아니라 역할에 의존해야함
- Impl(구현)와 service(역할)
- 직접 클래스에 의존하지 말고, 그 상위 추상 클래스나 인터페이스에 상속받아야 한다.
- 의존의역전원칙 : 구체화에 의존하는 것이 아니라 추상화에 의존해야한다.
- S - SRP
- 디자인 패턴
- GoF(Gang of Four)
- 생성
- 추상 팩토리 - 객체를 그룹화 할때 주로 사용 / 연관성 있는 객체끼리 모아서 추상화하는 단계
- 팩토리 메서드 - 상위 생성은 아니고, 정의만 내리고 서브(자식) 클래스에서 생성한다. / 가성 생성자(Vitual Contructor) 패턴
- 빌드 - 객체 생성코드와 객체의 사용코드를 분리하여 생성
- 프로트타입 - 기존의 인스턴스 그대로 복제
- 싱글톤 - 한 클래스에 하나의 인스턴스를 생성해서 여러번 호출 되도록함
- 구조
- 브릿지 - 구현부와 추상부를 분리하는 방법
- 어댑터 - 두개 클래스를 중간에서 (호환을 시켜주는 구조 / 맞추어 주는 구조 / 서로 다른 클래스들을 일치시켜주는 구조)
- 데커레이터 - 새로운 장식을 통해 새로운 느낌을 부여하는 구조
- 프록시 - 직접 접근하는 것이 아니라, 프록시 객체를 통해서 상호작용함 특정 객체에 접근을 제한 할 수 있는 구조
- 컴퍼지트 - 트리구조로 전체와 부분을 서로 관계를 나타내며, 계층 구조로 개별적을 다루는 설계 패턴
- 행위
- 옵서버 - 1대다관계로 하나의 객체가 변함으로써 다른 객체도 상태가 변한다.
- React참고
- 스테이트 - 객체 상태에 따라 객체 행위 내용이 변경할 수 있다.
- 자리에 있는 주문 키오스크
- 스트래터지 - 전략을 의미하며, 미리미리 약속된 캡슐화로 객체에 따라 상태를 전달함
- 길찾기
- 방문자 - 객체의 구조는 변경되지 않는다. 하지만, 방문자에 요구에 따라 주도하여 이끌어감
- 박물관
- 책임 연쇄 - 객체들을 체인 형태로 연결해놓고 요청이 해결되도록 체인에 따라 넘어가도록
- 템플릿 메서드 - 템플릿화 하여 상위 클래스에서 정의하되, 하위 클래스는 자유롭게 재정의 할 수 있는 것
- 요리 레시피
- 커맨드 - 명령(실행될 기능)을 캡슐화 해 놓고, 약속된 되로 처리하도록함
- 옵서버 - 1대다관계로 하나의 객체가 변함으로써 다른 객체도 상태가 변한다.
- 생성
- GoF(Gang of Four)
- 객체
'정보처리기사 > 필기' 카테고리의 다른 글
2과목 - 소프트웨어 개발[데이터 입,출력 구현] (0) | 2025.01.27 |
---|---|
1과목 - 인터페이스 설계 (0) | 2025.01.25 |
1과목 - 애플리케이션 설계 (0) | 2025.01.24 |
1과목 - 화면 설계 (0) | 2025.01.23 |
1과목 - 소프트웨어 설계[요구사항 분석과 분석모델 확인] (0) | 2025.01.19 |