일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- classList
- wsl
- className
- 코딩
- 웹스크래핑
- 도린이
- getItem
- Lerp
- 독립변수
- 탑다운
- Event
- 2D
- euler
- setItem
- javascript
- 자주 사용하는 Quaternion 함수
- 연습
- topdown
- 픽셀
- Quaternion
- 회전
- 종속변수
- Unity
- PYTHON
- 도트
- addEventListener
- intervals
- jQuery
- vsCode
- click
Archives
- Today
- Total
쫑가 과정
객체 지향 프로그래밍의 추상화 본문
Abstraction in object-oriented programming
추상화 목표
1. 추상화를 사용해 필요한 스크립트 구성 요소만 노출하는 방법
2. 추상화를 구현할 기회를 정확하게 인식해 객체의 중요한 세부 사항만 노출
외부 기능을 변경하지 않고 유지하면서 소프트웨어의 디자인, 구조 및 구현을 개선한다.
코드 리팩토링(Code Refactoring)이라고 부른다.
다른 프로그래머가 볼 수 있는 스크립트에서 복잡한 코드를 제거하고 다른 프로그래머가 실제로 필요로 하는 기능만 노출한다.
코드 리팩토링의 중요한 부분
다른 프로그래머가 코드와 상호 작용하는 방식을 변경하지 않고 기능을 개선하는 것.
예) 반복해서 사용하는 기능을 메서드화 하기.
private void Start()
{
for (int i = 0; i < 3; i++)
{
Instantiate(enemyPrefab, GenerateSpawnPosition(),
enemyPrefab.transform.rotation);
}
}
=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>
void SpawnEnemyWave() // create new higher-level method
{
for (int i = 0; i < 3; i++)
{
Instantiate(enemyPrefab, GenerateSpawnPosition(),
enemyPrefab.transform.rotation);
}
}
private void Start()
{
SpawnEnemyWave(); // call higher-level method in Start()
}
메서드를 호출만 하면 기능이 작동하기에 메서드 호출을 변경하지 않는 한, 메서드 내용을 안전하게 조정할 수 있다.
자신의 응용 프로그램에 추상화를 적용하거나 시도할 수 있는 방법에 대해 생각해보자.
'Unity > 이론' 카테고리의 다른 글
(Euler) 각을 (Quaternion) 값으로 바꾸기 / Quaternion.Euler (0) | 2022.01.13 |
---|---|
두 회전 사이의 각 구하기 / Quaternion.Angle (0) | 2022.01.12 |
타겟 방향 바라보기 함수 / Quaternion.LookRotation (0) | 2022.01.12 |
벡터 연산 이해하기 (0) | 2022.01.07 |
유니티3D 회전 이해 (0) | 2022.01.06 |
객체 지향 프로그래밍의 캡슐화 (0) | 2021.12.28 |
객체 지향 프로그래밍의 상속과 다형성 (0) | 2021.12.28 |
객체 지향 프로그래밍의 원리 (0) | 2021.12.21 |
Comments