π’ 10. Object Oriented Design
β κ°μ²΄ μ§ν₯ μ€κ³
- κΈ°μ μ λ¬Έμ , μ€μ μνμμ μ ν μ μλ κ°μ²΄λ€μ ꡬννλ ν΄λμ€μ λ©μλλ₯Ό λλ΅μ μΌλ‘ κ·Έλ €λ³΄λ λ¬Έμ λ€
- μ μ§λ³΄μκ° κ°λ₯ν κ°μ²΄ μ§ν₯μ μ½λλ₯Ό λ§λ€ μ μλμ§ μ΄ν΄ν΄μΌ νλ€
- μ κ·Όλ²
- λͺ¨νΈμ±μ ν΄μ
- λκ° κ³ μμ μΌλ‘ λͺ¨νΈμ±μ λλ€
- ν΅μ¬ κ°μ²΄μ μ€κ³
- μμ€ν μ λ£μ ν΅μ¬ κ°μ²΄κ° 무μμΈμ§ μκ°ν΄λ΄μΌνλ€
- κ΄κ³ λΆμ
- κ°μ²΄ μ¬μ΄μ κ°μ²΄λ₯Ό λΆμν΄μΌ νλ€
- μ΄λ€ κ°μ²΄μ μν΄ μλκ°
- λ€λ₯Έ κ°μ²΄λ‘λΆν° μμμ λ°μλκ°
- κ΄κ³λ λ€λλ€ μΈκ° μΌλλ€ μΈκ°
- λͺ¨νΈμ±μ ν΄μ
β μμ€ν μ ν΅μ¬ μ»΄ν¬λνΈ
- μμ€ν
μ μλ§λ λ°μ΄ν°λ² μ΄μ€, μ¬μ©μλ€, μλ²λ€λ‘ ꡬμ±λ κ²
- λ°μ΄ν°λ² μ΄μ€λ μ§μμ μΌλ‘ 보κ΄ν μλ£λ€
- μ¬μ©μ 리μ€νΈλ μ±ν λ΄μ λ±μ 보κ΄νκΈ° μν΄ μ¬μ©
- SQL λ°μ΄ν°λ² μ΄μ€λ μ’μ§λ§ κ·λͺ¨ νμ₯μ±μ΄ νμν κ²½μ°μλ BigTable μ¬μ©
- ν΄λΌμ΄μΈνΈμ μλ² κ° ν΅μ μλ XML μ¬μ©
- κ°μ₯ μ μμΆλ ννλ μλμ§λ§, μ»΄ν¨ν°μ μ¬λ λͺ¨λμκ² μ½κΈ° νΈν¨
- μλ²λ μ¬λ¬ λλ‘ κ΅¬μ±λλ€
- λ°μ΄ν°λ μλ²μ λΆν ν΄ μ μ₯ν κ²
- λ°μ΄ν°λ₯Ό μ°Ύμ μλ² μ¬μ΄ν΄ μ€λΌκ°λ½ν΄μΌ ν μ μλ€
- νμ μ€λ²ν€λλ₯Ό μ΅μννκΈ° μν΄ μ΄λ€ λ°μ΄ν°λ₯Ό μ¬λ¬ μλ²μ 볡μ¬ν΄ λ μ μλ€
- λ°μ΄ν°λ² μ΄μ€λ μ§μμ μΌλ‘ 보κ΄ν μλ£λ€
β ν΅μ¬ κ°μ²΄μ λ©μλ
- μ¬μ©μ, λν, μν μ 보 λ©μμ§ λ±μ κ°λ μ΄ μμ€ν μ ν΅μ¬ κ°μ²΄λ€μ ꡬμ±ν κ²μ
β κ°μ₯ νκΈ° μ΄λ €μ΄ λ¬Έμ λ?
- μ΄λ€ μ¬μ©μκ° μ¨λΌμΈ μνμΈμ§ μ΄λ»κ² μ μ μλκ°?
- μ¬μ©μκ° λ‘κ·Έμμν λ μμ€ν μ μ리λ λ°©λ²μ μ΄λ€κ³ ν΄λ νμ€νκ²λ μ μ μλ€
- μ¬μ©μμ μΈν°λ· μ°κ²°μ΄ κ°μκΈ° μ£½λ κ²½μ°κ° μμ μ μλ€
- μ£ΌκΈ°μ μΌλ‘ μ¬μ©μμ μνλ₯Ό νμΈνλ λ°©λ²μ μ¬μ©νλ©΄ μ νμ±μ λμΌ μ μμ κ²μ΄λ€
- μλ²μ κ·λͺ¨ νμ₯μ±μ μ΄λ»κ² ν보ν΄μΌ νλ?
- μ±ν μλ²λ₯Ό μ€κ³νλ©΄μ κ·λͺ¨ νμ₯μ±μ λν΄μλ μ κ²½μ°μ§ μμμ§λ§ κ½€ μ€μν¨
- λ°μ΄ν°λ₯Ό μ¬λ¬ μλ²μ λΆν ν΄μ μ μ₯ν΄μΌ ν νμλ μκΈΈ κ²μΈλ°, λΆμ°λ μ 보 κ° λΆμΌμΉ λ¬Έμ λ₯΄ λ κΉμ΄ κ³ λ―Όν΄λ΄μΌ νλ€
- Dos 곡격μ μ΄λ»κ² λ§λ
- ν΄λΌμ΄μΈνΈλ€μ΄ μλ²λ‘ λ°μ΄ν° νΈμ ν μ μμ..
β Circular ν΄λμ€ κ΅¬ννκΈ°
- rotate(int shiftRight) νΈμΆν λλ§λ€ μ€μ μμλ₯Ό μννΈνλ κ²
- μ€μ λ‘ μμλ₯Ό μννΈνλκ² μλλΌ shiftRight λ§νΌ head λ§ μμ§μ¬μ£Όλ κ²
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
29
30
31
32
33
34
class CircularArray<T> {
private items: T[];
private head = 0;
constructor(capacity: number) {
this.items = new Array(capacity);
}
private convert(index: number): number {
if (index < 0) index += this.items.length;
return (this.head + index) % this.items.length;
}
public rotate(shiftRight: number): void {
this.head = this.convert(shiftRight);
}
public get(i: number): T {
if (i < 0 || i >= this.items.length) {
throw new Error('Index out of bounds');
}
return this.items[this.convert(i)];
}
public set(i: number, item: T): void {
this.items[this.convert(i)] = item;
}
*[Symbol.iterator](): Iterator<T> {
for (let i = 0; i < this.items.length; i++) {
yield this.get(i);
}
}
}
β μκ³ λ¦¬μ¦
- μ§λ’°λκΈ°
- μμμ μ μ κ³ λ₯Έ λ€ μ§λ’°λ₯Ό λμ μ μμΌλ©° λκ³ μλλ©΄ λ€λ₯Έ μ₯μλ₯Ό μ ννλ κ²
- μ§λ’°κ° μμ£Ό λ§μ κ²½μ° κ΅μ₯ν λλ €μ§ μκ° μλ€
- μ΄λ―Έ μ§λ’°κ° μλ μ μ λ°λ³΅ν΄μ μ ννλ μν©μ λμΌ μ μλ€
- λΉ κ³΅κ°μ νμ₯
- λΉ κ³΅κ°μ νμ₯νλ κ²μ λ°λ³΅μ νΉμ μ¬κ·μ μΌλ‘ μν
- κ° λΉ μ μ μ£Όλ³ μ μ λΉμ΄ μλ μ μλλ©΄ μ«μ μ
- λ λ€ λ€μ§κΈ΄ ν΄μΌ ν¨
- λΉ μ μ λ€μ§μλ€λ©΄, λ€μ§μ μ μ μ£Όλ³ μ λ λ€μ§μ΄μΌ νλ―λ‘ νμ μλ‘ λ£μ΄μ€μΌ νλ€
This post is licensed under CC BY 4.0 by the author.