เจธเจฟเฉฐเจเจฒ เจเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจธเจฟเจงเจพเจเจค, เจเจฟเจธเจจเฉเฉฐ เจธเจฟเฉฐเจเจฒ เจเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจฆเจพ เจธเจฟเจงเจพเจเจค เจตเฉ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ,
เจเจเจธเจพเจฐ เจชเจฐเจฟเจตเจฐเจคเจจเจธเจผเฉเจฒเจคเจพ เจฆเจพ เจธเจฟเจงเจพเจเจค - เจธเจฎเจเจฃ เจฒเจ เจเฉฑเจ เจฌเจนเฉเจค เจนเฉ เจคเจฟเจฒเจเจฃ เจตเจพเจฒเจพ เจฎเฉเฉฐเจกเจพ เจ
เจคเฉ เจเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฐ เจเฉฐเจเจฐเจตเจฟเจ เจตเจฟเฉฑเจ เจ
เจเจฟเจนเจพ เจเจฌเจฐเจพเจนเจ เจตเจพเจฒเจพ เจธเจตเจพเจฒเฅค
เจเจธ เจธเจฟเจงเจพเจเจค เจจเจพเจฒ เจฎเฉเจฐเฉ เจชเจนเจฟเจฒเฉ เจเฉฐเจญเฉเจฐ เจเจพเจฃ-เจชเจเจพเจฃ เจฎเฉเจฐเฉ เจชเจนเจฟเจฒเฉ เจธเจพเจฒ เจฆเฉ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจนเฉเจ, เจเจฆเฉเจ เจเจตเจพเจจ เจ เจคเฉ เจนเจฐเฉ เจฌเฉฑเจเจฟเจเจ เจจเฉเฉฐ เจฒเจพเจฐเจตเฉ เจคเฉเจ เจ เจธเจฒ เจตเจฟเจฆเจฟเจเจฐเจฅเฉ เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉฐเจเจฒ เจตเจฟเฉฑเจ เจฒเจฟเจเจพเจเจ เจเจฟเจเฅค
เจเฉฐเจเจฒ เจตเจฟเฉฑเจ, เจธเจพเจจเฉเฉฐ 8-9 เจตเจฟเจ เจเจคเฉเจเจ เจฆเฉ เจธเจฎเฉเจนเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฟเจ เจเจฟเจ เจธเฉ เจ เจคเฉ เจเฉฑเจ เจฎเฉเจเจพเจฌเจฒเจพ เจธเฉ - เจเจฟเจนเฉเจพ เจธเจฎเฉเจน เจตเฉเจกเจเจพ เจฆเฉ เจเฉฑเจ เจฌเฉเจคเจฒ เจธเจญ เจคเฉเจ เจคเฉเจเจผ เจชเฉเจตเฉเจเจพ, เจฌเจธเจผเจฐเจคเฉ เจเจฟ เจธเจฎเฉเจน เจตเจฟเฉฑเจเฉเจ เจชเจนเจฟเจฒเจพ เจตเจฟเจ เจเจคเฉ เจเฉฑเจ เจเจฒเจพเจธ เจตเจฟเฉฑเจ เจตเฉเจกเจเจพ เจชเจพเจตเฉ, เจฆเฉเจเจพ เจเจธเจจเฉเฉฐ เจชเฉเจตเฉ, เจ เจคเฉ เจคเฉเจเฉ เจเฉเจฒ เจธเจจเฉเจ เจนเฉเฅค เจฏเฉเจจเจฟเจ เจเจฟเจธ เจจเฉ เจเจชเจฃเจพ เจเฉฐเจฎ เจชเฉเจฐเจพ เจเจฐ เจฒเจฟเจ เจนเฉ, เจเจน เจธเจฎเฉเจน เจฆเฉ เจเจคเจพเจฐ เจฆเฉ เจ เฉฐเจค เจคเฉฑเจ เจเจฒเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจเฉเจธ เจเจฟเฉฑเจฅเฉ เจเจคเจพเจฐ เจฆเจพ เจเจเจพเจฐ เจคเจฟเฉฐเจจ เจฆเจพ เจเฉเจฃเจ เจธเฉ, เจเจธเจเจฐเจชเฉ เจฆเจพ เจเฉฑเจ เจตเจงเฉเจ เจฒเจพเจเฉเจเจฐเจจ เจธเฉเฅค
เจชเจฐเจฟเจญเจพเจธเจผเจพ 1. เจธเจฟเฉฐเจเจฒ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉเฅค
เจธเจฟเฉฐเจเจฒ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจธเจฟเจงเจพเจเจค (SRP) เจฆเฉ เจ เจงเจฟเจเจพเจฐเจค เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฆเฉฑเจธเจฆเฉ เจนเฉ เจเจฟ เจนเจฐเฉเจ เจเจเจพเจ เจฆเฉ เจเจชเจฃเฉ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจ เจคเฉ เจนเฉเจเจฆ เจฆเจพ เจเจพเจฐเจจ เจนเฉ, เจ เจคเฉ เจเจธเจฆเฉ เจธเจฟเจฐเจซ เจเฉฑเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจนเฉเฅค
เจเจฌเจเฉเจเจ "เจกเจฐเจฟเฉฐเจเจฐ" เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเฉ (เจเจฟเฉฑเจชเจฒเจฐ).
SRP เจธเจฟเจงเจพเจเจค เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจ
เจธเฉเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉเจเจ เจจเฉเฉฐ เจคเจฟเฉฐเจจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจพเจเจเฉ:
- เจเฉฑเจ เจกเฉเจฒเฉเจนเจฆเจพ เจนเฉ (เจชเฉเจฐ เจเจชเจฐเฉเจธเจผเจจ)
- เจเฉฑเจ เจชเฉเจฃ (เจกเจฐเจฟเฉฐเจเจ เฉฑเจช เจเจชเจฐเฉเจธเจผเจจ)
- เจเฉฑเจ เจเฉเจฒ เจธเจจเฉเจ เจนเฉ (เจเฉเจเจฌเจพเจเจ เจเจชเจฐเฉเจธเจผเจจ)
เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ เจนเจฐเฉเจ เจญเจพเจเฉเจฆเจพเจฐ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจเฉฑเจ เจนเจฟเฉฑเจธเฉ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉ, เจ เจฐเจฅเจพเจค, เจเฉฑเจ เจชเจฐเจฎเจพเจฃเฉ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจนเฉ - เจชเฉเจฃ, เจกเฉเจฒเฉเจนเจฃเจพ เจเจพเจ เจธเจจเฉเจ เจเจฐเจจเจพเฅค
เจชเฉเจฃ เจตเจพเจฒเฉ เจฎเฉเจฐเฉ, เจฌเจฆเจฒเฉ เจตเจฟเฉฑเจ, เจเจนเจจเจพเจ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจฒเจ เจเฉฑเจ เจจเจเจพเจฌ เจนเฉ:
ัlass Tippler {
//...
void Act(){
_pourOperation.Do() // ะฝะฐะปะธัั
_drinkUpOperation.Do() // ะฒัะฟะธัั
_takeBiteOperation.Do() // ะทะฐะบััะธัั
}
}
เจเจฟเจเจ?
เจฎเจจเฉเฉฑเจเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฐ เจฌเจพเจเจฆเจฐ-เจฎเจจเฉเฉฑเจ เจฒเจ เจเฉเจก เจฒเจฟเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจฌเจพเจเจฆเจฐ-เจฎเจจเฉเฉฑเจ เจฌเฉเจชเจฐเจตเจพเจน, เจฎเฉเจฐเจ เจ
เจคเฉ เจนเจฎเฉเจธเจผเจพ เจเจพเจนเจฒเฉ เจตเจฟเฉฑเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเจน เจเฉฑเจ เจธเจฎเฉเจ เจตเจฟเฉฑเจ เจฒเจเจญเจ 3 - 7 เจธเจผเจฌเจฆเจพเจ เจจเฉเฉฐ เจซเฉ เจ
เจคเฉ เจธเจฎเจ เจธเจเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจธเจผเจฐเจพเจฌเฉ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจคเจฟเฉฐเจจ เจธเจผเจฌเจฆ เจนเจจ. เจนเจพเจฒเจพเจเจเจฟ, เจเฉ เจ
เจธเฉเจ เจเฉฑเจ เจธเจผเฉเจ เจจเจพเจฒ เจเฉเจก เจฒเจฟเจเจฆเฉ เจนเจพเจ, เจคเจพเจ เจเจธ เจตเจฟเฉฑเจ เจนเฉฑเจฅ, เจเจจเจเจพเจ, เจฒเฉเจพเจเจเจ เจ
เจคเฉ เจฐเจพเจเจจเฉเจคเฉ เจฌเจพเจฐเฉ เจฌเฉเจ
เฉฐเจค เจฆเจฒเฉเจฒเจพเจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจเฉเจเจเฅค เจ
เจคเฉ เจเจน เจธเจญ เจเฉฑเจ เจตเจฟเจงเฉ เจฆเฉ เจธเจฐเฉเจฐ เจตเจฟเฉฑเจ เจนเฉเจตเฉเจเจพ. เจฎเฉเจจเฉเฉฐ เจฏเจเฉเจจ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจ
เจญเจฟเจเจธ เจตเจฟเฉฑเจ เจ
เจเจฟเจนเจพ เจเฉเจก เจฆเฉเจเจฟเจ เจนเฉเจตเฉเจเจพเฅค เจฎเจพเจจเจธเจฟเจเจคเจพ เจฒเจ เจธเจญ เจคเฉเจ เจฎเจจเฉเฉฑเจเฉ เจชเฉเจฐเฉเจเจฟเจ เจจเจนเฉเจ.
เจฆเฉเจเฉ เจชเจพเจธเฉ, เจฌเจพเจเจฆเจฐ เจเจฆเจฎเฉ เจจเฉเฉฐ เจเจธเจฆเฉ เจธเจฟเจฐ เจตเจฟเฉฑเจ เจ เจธเจฒ เจธเฉฐเจธเจพเจฐ เจฆเฉเจเจ เจตเจธเจคเฉเจเจ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเจชเจฃเฉ เจเจฒเจชเจจเจพ เจตเจฟเฉฑเจ, เจเจน เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจเฉฑเจ เฉ เจงเฉฑเจ เจธเจเจฆเจพ เจนเฉ, เจเจนเจจเจพเจ เจคเฉเจ เจจเจตเฉเจเจ เจตเจธเจคเฉเจเจ เจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจธเฉ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจตเฉฑเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจชเฉเจฐเจพเจฃเฉ เจฎเจพเจกเจฒ เจฆเฉ เจเจพเจฐ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเฉเฅค เจคเฉเจนเจพเจกเฉ เจเจฒเจชเจจเจพ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจฆเจฐเจตเจพเจเจผเจพ เจเฉเจฒเฉเจน เจธเจเจฆเฉ เจนเฉ, เจฆเจฐเจตเจพเจเจผเฉ เจฆเฉ เจเฉเจฐเจฟเจฎ เจจเฉเฉฐ เจเฉเจฒเฉเจน เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเฉฑเจฅเฉ เจตเจฟเฉฐเจกเฉ เจฒเจฟเจซเจ เจฎเจเฉเจจเจฟเจเจผเจฎ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจธ เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉเจ เจฐ เจนเฉเจฃเจเฉเฅค เจชเจฐ เจคเฉเจธเฉเจ เจเฉฑเจ "เจธเฉเจเฉ" เจตเจฟเฉฑเจ เจเฉฑเจเฉ เจธเจฎเฉเจ เจฎเจธเจผเฉเจจ เจฆเฉ เจธเจพเจฐเฉ เจนเจฟเฉฑเจธเฉ เจจเจนเฉเจ เจฆเฉเจ เจธเจเจฆเฉเฅค เจเฉฑเจเฉ เจเฉฑเจ "เจฌเจพเจเจฆเจฐ เจเจฆเจฎเฉ" เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ.
เจเจธ เจฒเจ, เจฎเจจเฉเฉฑเจเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจตเจฟเจงเฉเจเจ เจจเฉเฉฐ เจเฉฑเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจ เจคเฉ เจเจพเจฐเจเจธเจผเฉเจฒ เจคเฉฑเจคเจพเจ เจฆเฉ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจตเจฟเจเจพเฉ เจฆเจฟเฉฐเจฆเฉ เจนเจจเฅค เจนเจพเจฒเจพเจเจเจฟ, เจเจธ เจจเฉเฉฐ เจตเฉฑเจ-เจตเฉฑเจ เจคเจฐเฉเจเจฟเจเจ เจจเจพเจฒ เจเฉฐเจชเฉเจเจผ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ: เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจชเฉเจฐเจพเจฃเฉเจเจ เจเจพเจฐเจพเจ เจตเจฟเฉฑเจ, เจนเจตเจพ เจฆเฉ เจจเจฒเฉ เจฆเจฐเจตเจพเจเจผเฉ เจตเจฟเฉฑเจ เจเจพเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจงเฉเจจเจฟเจ เจเจพเจฐเจพเจ เจตเจฟเฉฑเจ, เจฒเจพเจ เจเจฒเฉเจเจเฉเจฐเฉเจจเจฟเจเจธ เจตเจฟเฉฑเจ เจ เจธเจซเจฒเจคเจพ เจเฉฐเจเจฃ เจจเฉเฉฐ เจเจพเจฒเฉ เจนเฉเจฃ เจคเฉเจ เจฐเฉเจเจฆเฉ เจนเฉ, เจเฉ เจฎเฉเจฐเฉฐเจฎเจค เจฆเฉเจฐเจพเจจ เจเฉฑเจ เจธเจฎเฉฑเจธเจฟเจ เจนเฉ.
เจเจธ เจฒเจ, SRP เจเฉฑเจ เจธเจฟเจงเจพเจเจค เจนเฉ เจเฉ เจฆเฉฑเจธเจฆเจพ เจนเฉ เจเจฟ เจเจฟเจตเฉเจ เจตเจฟเจเจพเฉเจจเจพ เจนเฉ, เจฏเจพเจจเฉ เจเจฟ เจตเฉฐเจกเจฃ เจตเจพเจฒเฉ เจฐเฉเจเจพ เจเจฟเฉฑเจฅเฉ เจเจฟเฉฑเจเจฃเฉ เจนเฉ.
เจเจน เจเจนเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ "เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ" เจฆเฉ เจตเฉฐเจก เจฆเฉ เจธเจฟเจงเจพเจเจค เจ เจจเฉเจธเจพเจฐ เจตเจฟเจเจจ เจเจฐเจจเจพ เจเจผเจฐเฉเจฐเฉ เจนเฉ, เจฏเจพเจจเฉ เจเจฟ เจเฉเจ เจตเจธเจคเฉเจเจ เจฆเฉ เจเฉฐเจฎเจพเจ เจฆเฉ เจ เจจเฉเจธเจพเจฐ.
เจเจ เจชเฉเจฃ เจ เจคเฉ เจฌเจพเจเจฆเจฐ เจฎเจจเฉเฉฑเจ เจจเฉเฉฐ เจธเฉเจจ เจฆเฉ เจฆเฉเจฐเจพเจจ เจชเฉเจฐเจพเจชเจค เจนเฉเจฃ เจตเจพเจฒเฉ เจซเจพเจเจฆเจฟเจเจ เจตเฉฑเจฒ เจตเจพเจชเจธ เจเจเจเจฆเฉ เจนเจพเจ:
- เจเฉเจก เจนเจฐ เจชเฉฑเจงเจฐ 'เจคเฉ เจฌเจนเฉเจค เจธเจชเฉฑเจธเจผเจ เจนเฉ เจเจฟเจ เจนเฉ
- เจเฉเจก เจจเฉเฉฐ เจเฉฑเจ เจตเจพเจฐ เจตเจฟเฉฑเจ เจเจ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฐเจพเจ เจฆเฉเจเจฐเจพ เจฒเจฟเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ (เจนเจฐเฉเจ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจคเฉฑเจค เจฒเจฟเจเจฆเจพ เจนเฉ)
- เจธเจตเฉเจเจฒเจฟเจค เจเฉเจธเจเจฟเฉฐเจ เจจเฉเฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ - เจคเฉฑเจค เจเจฟเฉฐเจจเจพ เจธเจฐเจฒ เจนเฉเจตเฉเจเจพ, เจเฉเจธเจ เจเจฐเจจเจพ เจเจจเจพ เจนเฉ เจเจธเจพเจจ เจนเฉเจตเฉเจเจพ
- เจเฉเจก เจฆเฉ เจฐเจเจจเจพเจคเจฎเจเจคเจพ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ - เจคเฉเจธเฉเจ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเฉ เจกเจฐเจฟเฉฐเจเจ เฉฑเจช เจเจชเจฐเฉเจธเจผเจจ เจเฉฑเจ เจเจชเจฐเฉเจธเจผเจจ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจผเจฐเจพเจฌเฉ เจฎเฉเจเจผ เจฆเฉ เจนเฉเจ เจพเจ เจคเจฐเจฒ เจชเจพเจเจเจฆเจพ เจนเฉเฅค เจเจพเจ เจกเฉเจฒเฉเจนเจฃ เจฆเฉ เจเจพเจฐเจตเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเจชเจฐเฉเจธเจผเจจ เจจเจพเจฒ เจฌเจฆเจฒเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจตเจพเจเจจ เจ เจคเฉ เจชเจพเจฃเฉ เจเจพเจ เจตเฉเจกเจเจพ เจ เจคเฉ เจฌเฉเจ เจฐ เจจเฉเฉฐ เจฎเจฟเจฒเจพเจเจเจฆเฉ เจนเฉเฅค เจเจพเจฐเฉเจฌเจพเจฐเฉ เจฒเฉเฉเจพเจ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจฟเจเจ, เจคเฉเจธเฉเจ เจตเจฟเจงเฉ เจเฉเจก เจจเฉเฉฐ เจเฉเจนเจฃ เจคเฉเจ เจฌเจฟเจจเจพเจ เจธเจญ เจเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจฟเฉฑเจชเจฒเจฐ.เจเจเจ.
- เจเจนเจจเจพเจ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจคเฉเจ เจคเฉเจธเฉเจ เจเจฒเฉเจเจจ เจจเฉเฉฐ เจซเฉเจฒเจก เจเจฐ เจธเจเจฆเฉ เจนเฉ (เจธเจฟเจฐเจซเจผ เจตเจฐเจคเจฆเฉ เจนเฉเจ TakeBitOperation), เจ เจฒเจเฉเจนเจฒ (เจธเจฟเจฐเจซเจผ เจตเจฐเจคเจฃเจพ เจกเจฐเจฟเฉฐเจเจ เฉฑเจช เจเจชเจฐเฉเจธเจผเจจ เจธเจฟเฉฑเจงเจพ เจฌเฉเจคเจฒ เจคเฉเจ) เจ เจคเฉ เจนเฉเจฐ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจตเจชเจพเจฐเจ เจเจผเจฐเฉเจฐเจคเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเฉเฅค
(เจเจน, เจ เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจเจน เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเฉฑเจ OCP เจธเจฟเจงเจพเจเจค เจนเฉ, เจ เจคเฉ เจฎเฉเจ เจเจธ เจชเฉเจธเจ เจฆเฉ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจฆเฉ เจเจฒเฉฐเจเจฃเจพ เจเฉเจคเฉ เจนเฉ)
เจ เจคเฉ, เจฌเฉเจธเจผเจ, เจจเฉเจเจธเจพเจจ:
- เจธเจพเจจเฉเฉฐ เจนเฉเจฐ เจเจฟเจธเจฎเจพเจ เจฌเจฃเจพเจเจฃเฉเจเจ เจชเฉเจฃเจเฉเจเจเฅค
- เจเฉฑเจ เจธเจผเจฐเจพเจฌเฉ เจชเจนเจฟเจฒเฉ เจตเจพเจฐ เจเฉเจ เจเฉฐเจเจฟเจเจ เจฌเจพเจ เจฆ เจชเฉเจเจฆเจพ เจนเฉ เจเจฟเฉฐเจจเจพ เจเจน เจจเจนเฉเจ เจเจฐเจฆเจพเฅค
เจชเจฐเจฟเจญเจพเจธเจผเจพ 2. เจฏเฉเจจเฉเจซเจพเจเจก เจชเจฐเจฟเจตเจฐเจคเจจเจธเจผเฉเจฒเจคเจพเฅค
เจฎเฉเจจเฉเฉฐ เจเจเจฟเจ เจฆเจฟเจ, เจธเฉฑเจเจฃ! เจชเฉเจฃ เจตเจพเจฒเฉ เจตเจฐเจ เจฆเฉ เจตเฉ เจเฉฑเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจนเฉ - เจเจน เจชเฉเจเจฆเจพ เจนเฉ! เจ เจคเฉ เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจธเจผเจฌเจฆ "เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ" เจเฉฑเจ เจฌเจนเฉเจค เจนเฉ เจ เจธเจชเจธเจผเจ เจงเจพเจฐเจจเจพ เจนเฉเฅค เจเฉเจ เจฎเจจเฉเฉฑเจเจคเจพ เจฆเฉ เจเจฟเจธเจฎเจค เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉ, เจ เจคเฉ เจเฉเจ เจเฉฐเจญเฉ 'เจคเฉ เจเจฒเจเฉ เจนเฉเจ เจชเฉเจเจเฉเจเจจเจพเจ เจจเฉเฉฐ เจเฉเฉฑเจเจฃ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉเฅค
เจเจ เจชเฉเจฃ เจตเจพเจฒเฉ เจฆเฉ เจฆเฉ เจ เจฎเจฒเจพเจ เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเฉเจ. เจชเจนเจฟเจฒเฉ เจเฉฑเจ, เจเฉฑเจชเจฐ เจเจผเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจตเจฟเฉฑเจ เจคเจฟเฉฐเจจ เจธเจผเฉเจฐเฉเจฃเฉเจเจ เจนเจจ - เจกเฉเจฒเฉเจนเจฃเจพ, เจชเฉเจฃเจพ เจ เจคเฉ เจธเจจเฉเจเฅค
เจฆเฉเจเจพ "เจ เฉฑเจเฉ เจ เจคเฉ เจธเจฟเจฐเจซเจผ เจ เฉฑเจเฉ" เจตเจฟเจงเฉ เจฆเฉเจเจฐเจพ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ เจ เจคเฉ เจตเจฟเจงเฉ เจตเจฟเฉฑเจ เจธเจพเจฐเฉ เจคเจฐเจ เจธเจผเจพเจฎเจฒ เจนเจจ เจเจเจ:
//ะะต ััะฐัััะต ะฒัะตะผั ะฝะฐ ะธะทััะตะฝะธะต ััะพะณะพ ะบะปะฐััะฐ. ะัััะต ััะตัััะต ะฟะตัะตะฝัะบั
ัlass BrutTippler {
//...
void Act(){
// ะฝะฐะปะธะฒะฐะตะผ
if(!_hand.TryDischarge(from:_bottle, to:_glass, size:_glass.Capacity))
throw new OverdrunkException();
// ะฒัะฟะธะฒะฐะตะผ
if(!_hand.TryDrink(from: _glass, size: _glass.Capacity))
throw new OverdrunkException();
//ะะฐะบัััะฒะฐะตะผ
for(int i = 0; i< 3; i++){
var food = _foodStore.TakeOrDefault();
if(food==null)
throw new FoodIsOverException();
_hand.TryEat(food);
}
}
}
เจเจน เจฆเฉเจตเฉเจ เจเจฎเจพเจคเจพเจ, เจเฉฑเจ เจฌเจพเจนเจฐเฉ เจจเจฟเจฐเฉเจเจ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ, เจฌเจฟเจฒเจเฉเจฒ เจเฉฑเจเฉ เจเจฟเจนเฉเจเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉเจเจ เจนเจจ เจ เจคเฉ "เจชเฉเจฃ" เจฆเฉ เจเฉฑเจเฉ เจเจฟเจนเฉ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจธเจพเจเจเฉ เจเจฐเจฆเฉเจเจ เจนเจจเฅค
เจเจฒเจเจฃ!
เจซเจฟเจฐ เจ เจธเฉเจ เจเจจเจฒเจพเจเจจ เจเจพเจเจฆเฉ เจนเจพเจ เจ เจคเฉ SRP เจฆเฉ เจเฉฑเจ เจนเฉเจฐ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฒเฉฑเจญเจฆเฉ เจนเจพเจ - เจธเจฟเฉฐเจเจฒ เจชเจฐเจฟเจตเจฐเจคเจจเจธเจผเฉเจฒเจคเจพ เจธเจฟเจงเจพเจเจคเฅค
SCP เจเจนเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ "เจเฉฑเจ เจฎเฉเจกเฉเจเจฒ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃ เจฆเจพ เจเฉฑเจเฉ เจเฉฑเจ เจเจพเจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉ". เจเจน เจนเฉ, "เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจคเจฌเจฆเฉเจฒเฉ เจฆเจพ เจเจพเจฐเจจ เจนเฉเฅค"
(เจ เจเจฟเจนเจพ เจฒเฉฑเจเจฆเจพ เจนเฉ เจเจฟ เจ เจธเจฒ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฆเฉ เจจเจพเจฒ เจเจ เจฎเฉเฉฐเจกเจฟเจเจ เจจเฉเฉฐ เจฌเจพเจเจฆเจฐ เจเจฆเจฎเฉ เจฆเฉเจเจ เจเฉเจฒเฉเจชเฉเจฅเจฟเจ เจฏเฉเจเจคเจพเจตเจพเจ เจตเจฟเฉฑเจ เจญเจฐเฉเจธเจพ เจธเฉ)
เจนเฉเจฃ เจธเจญ เจเฉเจ เจเจเฉเจนเจพ เจตเจฟเฉฑเจ เจกเจฟเฉฑเจเจฆเจพ เจนเฉ. เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ, เจ เจธเฉเจ เจกเฉเจฒเฉเจนเจฃ, เจชเฉเจฃ เจ เจคเฉ เจธเจจเฉเจ เจเจฐเจจ เจฆเฉเจเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเจพเจ, เจชเจฐ เจชเฉเจฃ เจตเจพเจฒเฉ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจธเจฟเจฐเจซ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจฆเฉ เจคเจฐเจคเฉเจฌ เจ เจคเฉ เจฐเจเจจเจพ เจจเฉเฉฐ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจชเฉเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจธเจจเฉเจ เจจเฉเฉฐ เจนเจฟเจฒเจพ เจเฉ เจเจพเจ เจเฉเจธเจ เจฆเฉ เจชเจพเจ เจจเฉเฉฐ เจเฉเฉ เจเฉเฅค
"เจ เฉฑเจเฉ เจ เจคเฉ เจธเจฟเจฐเจซเจผ เจ เฉฑเจเฉ" เจชเจนเฉเฉฐเจ เจตเจฟเฉฑเจ, เจนเจฐ เจเฉเจเจผ เจเฉ เจฌเจฆเจฒเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ, เจธเจฟเจฐเจซ เจตเจฟเจงเฉ เจตเจฟเฉฑเจ เจฌเจฆเจฒเฉ เจเจพเจเจฆเฉ เจนเฉ เจเจเจ. เจเจน เจชเฉเฉเจนเจจเจฏเฉเจ เจ เจคเฉ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฆเฉเจ เจฅเฉเฉเจพ เจเจฟเจนเจพ เจคเจฐเจ เจนเฉเฉฐเจฆเจพ เจนเฉ เจ เจคเฉ เจเจน เจเฉฑเจ เจนเฉ เจฌเจฆเจฒเจฆเจพ เจนเฉ, เจชเจฐ เจ เจเจธเจฐ เจเจน 500 เจฒเจพเจเจจเจพเจ เจฆเฉ เจญเจฟเจเจจเจ เจคเจฐเฉเจเจฟเจเจ เจจเจพเจฒ เจเจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจฐเฉเจธ เจฒเจ เจจเจพเจเฉ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃ เจฒเจ เจฒเฉเฉ เจคเฉเจ เจตเฉฑเจง เจเฉ-เจเจฅเจจเจพเจ เจฆเฉ เจจเจพเจฒเฅค
เจชเจฐเจฟเจญเจพเจธเจผเจพ 3. เจคเจฌเจฆเฉเจฒเฉเจเจ เจฆเจพ เจธเจฅเจพเจจเฉเจเจฐเจจเฅค
เจธเจผเจฐเจพเจฌ เจชเฉเจฃ เจตเจพเจฒเฉ เจ เจเจธเจฐ เจเจน เจจเจนเฉเจ เจธเจฎเจเจฆเฉ เจเจฟ เจเจน เจเจฟเจธเฉ เจนเฉเจฐ เจฆเฉ เจ เจชเจพเจฐเจเจฎเฉเจเจ เจตเจฟเฉฑเจ เจเจฟเจเจ เจเฉฑเจ เฉ, เจเจพเจ เจเจนเจจเจพเจ เจฆเจพ เจฎเฉเจฌเจพเจเจฒ เจซเจผเฉเจจ เจเจฟเฉฑเจฅเฉ เจนเฉเฅค เจเจน เจตเจฟเจธเจคเฉเจฐเจฟเจค เจฒเฉเจเจฟเฉฐเจ เจเฉเฉเจจ เจฆเจพ เจธเจฎเจพเจ เจนเฉเฅค
เจเจ เจกเฉเจฒเฉเจนเจฃ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเจพเจฒ เจฒเฉเจเจฟเฉฐเจ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ:
class PourOperation: IOperation{
PourOperation(ILogger log /*....*/){/*...*/}
//...
void Do(){
_log.Log($"Before pour with {_hand} and {_bottle}");
//Pour business logic ...
_log.Log($"After pour with {_hand} and {_bottle}");
}
}
เจเจธ เจจเฉเฉฐ เจ เฉฐเจฆเจฐ เจธเจฎเฉเจ เจเฉ เจชเฉเจฐ เจเจชเจฐเฉเจธเจผเจจ, เจ เจธเฉเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจ เจคเฉ เจเจจเจเฉเจชเจธเฉเจฒเฉเจธเจผเจจ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ เจธเจฎเจเจฆเจพเจฐเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเฉเจคเจพ, เจชเจฐ เจนเฉเจฃ เจ เจธเฉเจ เจชเจฐเจฟเจตเจฐเจคเจจเจธเจผเฉเจฒเจคเจพ เจฆเฉ เจธเจฟเจงเจพเจเจค เจจเจพเจฒ เจเจฒเจเจฃ เจตเจฟเฉฑเจ เจนเจพเจเฅค เจเจชเจฐเฉเจธเจผเจจ เจคเฉเจ เจเจฒเจพเจตเจพ, เจเฉ เจฌเจฆเจฒ เจธเจเจฆเจพ เจนเฉ, เจฒเฉเจเจฟเฉฐเจ เจเจชเจฃเฉ เจเจช เจตเฉ เจฌเจฆเจฒเจฃเจฏเฉเจ เจฌเจฃ เจเจพเจเจฆเฉ เจนเฉเฅค เจคเฉเจนเจพเจจเฉเฉฐ เจชเฉเจฐเจฟเฉฐเจ เจเจชเจฐเฉเจธเจผเจจ เจฒเจ เจตเฉฑเจเจฐเจพ เจเจฐเจจเจพ เจ เจคเฉ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจฒเฉเจเจฐ เจฌเจฃเจพเจเจฃเจพ เจนเฉเจตเฉเจเจพ:
interface IPourLogger{
void LogBefore(IHand, IBottle){}
void LogAfter(IHand, IBottle){}
void OnError(IHand, IBottle, Exception){}
}
class PourOperation: IOperation{
PourOperation(IPourLogger log /*....*/){/*...*/}
//...
void Do(){
_log.LogBefore(_hand, _bottle);
try{
//... business logic
_log.LogAfter(_hand, _bottle");
}
catch(exception e){
_log.OnError(_hand, _bottle, e)
}
}
}
เจธเฉเจเฉเจค เจชเจพเจ เจ เจเจธ เจตเฉฑเจฒ เจงเจฟเจเจจ เจฆเฉเจตเฉเจเจพ เจฒเฉเจเจเจซเจเจฐ, LogBefore ะธ OnError เจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจตเฉ เจฌเจฆเจฒเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจ เจคเฉ, เจชเจฟเจเจฒเฉ เจชเฉเจพเจตเจพเจ เจฆเฉ เจธเจฎเจพเจจเจคเจพ เจจเจพเจฒ, เจคเจฟเฉฐเจจ เจเจฒเจพเจธเจพเจ เจฌเจฃเจพเจเจเจพ: PourLoggerBefore, PourLoggerAfter ะธ PourErrorLogger.
เจ เจคเฉ เจฏเจพเจฆ เจฐเฉฑเจเฉ เจเจฟ เจเฉฑเจ เจชเฉเจฃ เจตเจพเจฒเฉ เจฒเจ เจคเจฟเฉฐเจจ เจเจชเจฐเฉเจธเจผเจจ เจนเจจ, เจธเจพเจจเฉเฉฐ เจจเฉเจ เจฒเฉเจเจฟเฉฐเจ เจเจฒเจพเจธเจพเจ เจฎเจฟเจฒเจฆเฉเจเจ เจนเจจ. เจจเจคเฉเจเฉ เจตเจเฉเจ, เจชเฉเจฐเฉ เจชเฉเจฃ เจตเจพเจฒเฉ เจธเจฐเจเจฒ เจตเจฟเฉฑเจ 14 (!!!) เจเจฒเจพเจธเจพเจ เจธเจผเจพเจฎเจฒ เจนเจจ.
เจนเจพเจเจชเจฐเจฌเฉเจฒเจพ? เจฎเฉเจธเจผเจเจฟเจฒ เจจเจพเจฒ! เจเฉฑเจ เจธเฉเจจ เจตเจพเจฒเฉ เจเฉเจฐเฉเจจเฉเจก เจตเจพเจฒเจพ เจเฉฑเจ เจฌเจพเจเจฆเจฐ เจเจฆเจฎเฉ "เจชเฉเจ เจฐเจฐ" เจจเฉเฉฐ เจเฉฑเจ เจกเฉเจเฉเจจเจเจฐ, เจเฉฑเจ เจเจฒเจพเจธ, เจกเฉเจฒเฉเจนเจฃ เจตเจพเจฒเฉ เจเจชเจฐเฉเจเจฐเจพเจ, เจเฉฑเจ เจชเจพเจฃเฉ เจธเจชเจฒเจพเจ เจธเฉเจตเจพ, เจ เจฃเฉเจเจ เจฆเฉ เจเจเจฐเจพเจ เจฆเจพ เจเฉฑเจ เจญเฉเจคเจฟเจ เจฎเจพเจกเจฒ เจตเจฟเฉฑเจ เจตเฉฐเจก เจฆเฉเจตเฉเจเจพ, เจ เจคเฉ เจ เจเจฒเฉ เจคเจฟเจฎเจพเจนเฉ เจฒเจ เจเจน เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉเฉฐ เจธเฉเจฒเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจเจพ. เจเจฒเฉเจฌเจฒ เจตเฉเจฐเฉเจเจฌเจฒ. เจ เจคเฉ เจฎเฉเจฐเฉ เจคเฉ เจตเจฟเจธเจผเจตเจพเจธ เจเจฐเฉ, เจเจน เจจเจนเฉเจ เจฐเฉเจเฉเจเจพ.
เจเจน เจเจธ เจฎเฉเจเฉ 'เจคเฉ เจนเฉ เจเจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจเจธ เจธเจฟเฉฑเจเฉ 'เจคเฉ เจชเจนเฉเฉฐเจเจฆเฉ เจนเจจ เจเจฟ SRP เจเฉเจฒเจพเจฌเฉ เจฐเจพเจเจพเจ เจฆเฉเจเจ เจชเจฐเฉ เจเจนเจพเจฃเฉเจเจ เจนเจจ, เจ เจคเฉ เจจเฉเจกเจฒเจเจผ เจเฉเจกเจฃ เจฒเจ เจเจฒเฉ เจเจพเจเจฆเฉ เจนเจจ ...
... Srp เจฆเฉ เจคเฉเจเฉ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจฌเจพเจฐเฉ เจธเจฟเฉฑเจเฉ เจฌเจฟเจจเจพเจ:
"เจเจเจนเจฟเจฐเฉ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจธเจฟเจงเจพเจเจค เจฆเฉฑเจธเจฆเจพ เจนเฉ เจเจฟ เจคเจฌเจฆเฉเจฒเฉเจเจ เจฆเฉ เจธเจฎเจพเจจ เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจฅเจพเจ เจคเฉ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ". เจเจพเจ "เจเจเฉฑเจ เฉ เจเฉ เจฌเจฆเจฒเจพเจ เจเฉฑเจ เจเจเฉเจนเจพ 'เจคเฉ เจฐเฉฑเจเจฟเจ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ"
เจญเจพเจต, เจเฉเจเจฐ เจ เจธเฉเจ เจเจฟเจธเฉ เจเจชเจฐเฉเจธเจผเจจ เจฆเฉ เจฒเจพเจเจฟเฉฐเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจฅเจพเจ 'เจคเฉ เจฌเจฆเจฒเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจเจน เจเฉฑเจ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจจเฉเจเจคเจพ เจนเฉ - เจเจฟเจเจเจเจฟ SRP เจฆเฉเจเจ เจธเจพเจฐเฉเจเจ เจตเจฟเจเจเจฟเจเจตเจพเจ เจเฉ เจเฉฑเจชเจฐ เจฆเจฟเฉฑเจคเฉเจเจ เจเจเจเจ เจธเจจ เจเจฟ เจเจน เจเจฟเจนเจพ เจเจฟเจ เจนเฉ เจเจฟ เจเจฟเจธเจฎเจพเจ เจจเฉเฉฐ เจเฉเจเจฒเจฃ เจตเฉเจฒเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉเจเจฒเจฃเจพ เจเจผเจฐเฉเจฐเฉ เจธเฉ, เจฏเจพเจจเฉ เจเจนเจจเจพเจ เจจเฉ เจตเจธเจคเฉ เจฆเฉ เจเจเจพเจฐ 'เจคเฉ เจเฉฑเจ "เจเฉฑเจชเจฐเฉ เจธเฉเจฎเจพ" เจฒเจเจพ เจฆเจฟเฉฑเจคเฉ เจธเฉ, เจ เจคเฉ เจนเฉเจฃ เจ เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ "เจนเฉเจ เจฒเฉ เจธเฉเจฎเจพ" เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐ เจฐเจนเฉ เจนเจพเจเฅค เจนเฉเจฐ เจธเจผเจฌเจฆเจพเจ เจตเจฟเจ, เจเจธเจเจฐเจชเฉ เจจเฉเฉฐ เจจเจพ เจธเจฟเจฐเจซเจผ "เจเฉเจเจฒเจฃ เจตเฉเจฒเฉ เจเฉเจเจฒเจฃ" เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจธเจเฉเจ เจเจธ เจจเฉเฉฐ เจเจผเจฟเจเจฆเจพ เจจเจพ เจเจฐเจจ เจฆเฉ เจตเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ - "เจเฉฐเจเจฐเจฒเฉเจเจฟเฉฐเจ เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจจเจพ เจเฉเจเจฒเฉ". เจเจน เจเจเจพเจฎ เจฆเฉ เจฐเฉเจเจผเจฐ เจ เจคเฉ เจฌเจพเจเจฆเจฐ เจเจฆเจฎเฉ เจตเจฟเจเจเจพเจฐ เจฎเจนเจพเจจ เจฒเฉเจพเจ เจนเฉ!
เจนเฉเจฃ เจชเฉเจฃ เจตเจพเจฒเฉ เจจเฉเฉฐ เจฌเจฟเจนเจคเจฐ เจฎเจนเจฟเจธเฉเจธ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ. เจเจธ เจคเฉฑเจฅ เจคเฉเจ เจเจฒเจพเจตเจพ เจเจฟ IPourLogger เจฒเฉเจเจฐ เจจเฉเฉฐ เจคเจฟเฉฐเจจ เจธเจผเฉเจฐเฉเจฃเฉเจเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฃ เจฆเฉ เจเฉเจ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจ เจธเฉเจ เจธเจพเจฐเฉ เจฒเฉเจเจฐเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเจฟเจธเจฎ เจตเจฟเฉฑเจ เจเฉเฉ เจธเจเจฆเฉ เจนเจพเจ:
class OperationLogger{
public OperationLogger(string operationName){/*..*/}
public void LogBefore(object[] args){/*...*/}
public void LogAfter(object[] args){/*..*/}
public void LogError(object[] args, exception e){/*..*/}
}
เจ เจคเฉ เจเฉเจเจฐ เจ เจธเฉเจ เจเฉเจฅเฉ เจเจฟเจธเจฎ เจฆเฉ เจเจพเจฐเจตเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเฉ เจนเจพเจ, เจคเจพเจ เจเจธเจฆเฉ เจฒเจ เจฒเฉเจเจฟเฉฐเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจคเจฟเจเจฐ เจนเฉ. เจ เจคเฉ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจฆเจพ เจเฉเจก เจธเจพเจซเจผ เจ เจคเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจฐเฉเจฒเฉ เจคเฉเจ เจฎเฉเจเจค เจนเฉเฅค
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจกเฉ เจเฉเจฒ เจชเฉเจฃ เจฆเฉ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ 5 เจเจฒเจพเจธเจพเจ เจนเจจ:
- เจกเฉเจฒเฉเจนเจฃ เจฆเฉ เจเจพเจฐเจตเจพเจ
- เจชเฉเจฃ เจฆเฉ เจเจพเจฐเจตเจพเจ
- เจเฉเจฎเจฟเฉฐเจ เจเจชเจฐเฉเจธเจผเจจ
- เจฒเจพเจเจฐ
- เจชเฉเจฃ เจตเจพเจฒเจพ เจจเจเจพเจฌ
เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจนเจฐ เจเฉฑเจ เจเจพเจฐเจเจธเจผเฉเจฒเจคเจพ เจฒเจ เจธเจเจคเฉ เจจเจพเจฒ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉ เจ เจคเฉ เจคเจฌเจฆเฉเจฒเฉ เจฆเจพ เจเฉฑเจ เจเจพเจฐเจจ เจนเฉเฅค เจคเจฌเจฆเฉเจฒเฉ เจฆเฉ เจธเจฎเจพเจจ เจธเจพเจฐเฉ เจจเจฟเจฏเจฎ เจจเฉเฉเฉ เจธเจฅเจฟเจค เจนเจจเฅค
เจ เจธเจฒ เจเฉเจตเจจ เจฆเฉ เจฎเจฟเจธเจพเจฒ
เจ เจธเฉเจ เจเฉฑเจ เจตเจพเจฐ เจเฉฑเจ b2b เจเจฒเจพเจเฉฐเจ เจจเฉเฉฐ เจธเจตเฉเจเจฒเจฟเจค เจคเฉเจฐ 'เจคเฉ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจธเฉเจตเจพ เจฒเจฟเจเฉ เจธเฉเฅค เจ เจคเฉ เจธเจฎเจพเจจ เจธเจฎเฉฑเจเจฐเฉ เจฆเฉเจเจ 200 เจฒเจพเจเจจเจพเจ เจฒเจ เจเฉฑเจ เจเฉเจก เจตเจฟเจงเฉ เจชเฉเจฐเจเจ เจนเฉเจ:
- 1C 'เจคเฉ เจเจพเจ เจ เจคเฉ เจเจพเจคเจพ เจฌเจฃเจพเจ
- เจเจธ เจเจพเจคเฉ เจฆเฉ เจจเจพเจฒ, เจญเฉเจเจคเจพเจจ เจฎเฉเจกเฉเจเจฒ 'เจคเฉ เจเจพเจ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเฉฑเจฅเฉ เจฌเจฃเจพเจ
- เจเจพเจเจ เจเจฐเฉ เจเจฟ เจฎเฉเฉฑเจ เจธเจฐเจตเจฐ 'เจคเฉ เจ เจเจฟเจนเฉ เจเจพเจคเฉ เจตเจพเจฒเจพ เจเจพเจคเจพ เจคเจพเจ เจจเจนเฉเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ
- เจจเจตเจพเจ เจเจพเจคเจพ เจฌเจฃเจพเจ
- เจญเฉเจเจคเจพเจจ เจฎเฉเจกเฉเจเจฒ เจตเจฟเฉฑเจ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจจเจคเฉเจเฉ เจ เจคเฉ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจจเจคเฉเจเฉ เจธเฉเจตเจพ เจตเจฟเฉฑเจ 1c เจจเฉฐเจฌเจฐ เจธเจผเจพเจฎเจฒ เจเจฐเฉ
- เจเจธ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจเจพเจคเจพ เจเจพเจฃเจเจพเจฐเฉ เจธเจผเจพเจฎเจฒ เจเจฐเฉ
- เจชเฉเจเจเฉฐเจ เจธเฉเจตเจพ เจตเจฟเฉฑเจ เจเจธ เจเจฒเจพเจเฉฐเจ เจฒเจ เจเฉฑเจ เจฌเจฟเฉฐเจฆเฉ เจจเฉฐเจฌเจฐ เจฌเจฃเจพเจเฅค เจเจธ เจธเฉเจตเจพ เจจเฉเฉฐ เจเจชเจฃเจพ 1c เจเจพเจคเจพ เจจเฉฐเจฌเจฐ เจฆเจฟเจเฅค
เจ เจคเฉ เจญเจฟเจเจจเจ เจเจจเฉเจเจเฉเจตเจฟเจเฉ เจฆเฉ เจจเจพเจฒ เจเจธ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจฒเจเจญเจ 10 เจนเฉเจฐ เจเจพเจฐเฉเจฌเจพเจฐเฉ เจธเฉฐเจเจพเจฒเจจ เจธเจจเฅค เจฒเจเจญเจ เจนเจฐ เจเจฟเจธเฉ เจจเฉเฉฐ เจเจพเจคเจพ เจตเจธเจคเฉ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจ เฉฑเจงเฉเจเจ เจเจพเจฒเจพเจ เจตเจฟเฉฑเจ เจฌเจฟเฉฐเจฆเฉ ID เจ เจคเฉ เจเจฒเจพเจเฉฐเจ เจจเจพเจฎ เจฆเฉ เจฒเฉเฉ เจธเฉเฅค
เจเฉฑเจ เจเฉฐเจเฉ เจฆเฉ เจฐเฉเจซเฉเจเจเจฐเจฟเฉฐเจ เจคเฉเจ เจฌเจพเจ เจฆ, เจ เจธเฉเจ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจเฉเจก เจ เจคเฉ เจเจพเจคเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉเจเจ เจเฉเจ เจธเฉเจเจฎเจคเจพเจตเจพเจ เจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจขเฉฐเจเจพเจ/เจเจฒเจพเจธเจพเจ เจตเจฟเฉฑเจ เจตเฉฑเจ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉ เจเจเฅค เจชเฉเจฐเจฎเจพเจคเจฎเจพ เจตเจฟเจงเฉ เจจเฉ เจเจธเจจเฉเฉฐ เจเจธเจพเจจ เจฌเจฃเจพ เจฆเจฟเฉฑเจคเจพ, เจชเจฐ เจเฉเจก เจฆเฉเจเจ 100 เจฒเจพเจเจจเจพเจ เจฌเจเฉเจเจ เจธเจจ เจเฉ เจธเจฟเจฐเจซ เจ เจฃ-เจเจฒเจเจฃเจพ เจจเจนเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ เจธเจจเฅค
เจเฉเจ เจฆเจฟเจจเจพเจ เจฌเจพเจ เจฆ เจนเฉ เจเจน เจธเจชเฉฑเจธเจผเจ เจนเฉ เจเจฟเจ เจเจฟ เจเจธ "เจนเจฒเจเฉ" เจตเจฟเจงเฉ เจฆเจพ เจธเจพเจฐ เจเฉฑเจ เจตเจชเจพเจฐเจ เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจนเฉ. เจ เจคเฉ เจเจน เจเจฟ เจคเจเจจเฉเจเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเจพ เจ เจธเจฒ เจตเฉเจฐเจตเจพ เจเจพเจซเจผเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจธเฉเฅค เจ เจคเฉ เจเจน เจเจธ เจตเจฟเจงเฉ เจจเฉเฉฐ เจเฉเจเฉเจฟเจเจ เจตเจฟเฉฑเจ เจคเฉเฉเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจนเฉ เจเฉ SRP เจฆเฉ เจเจฒเฉฐเจเจฃเจพ เจเจฐเฉเจเจพ, เจจเจพ เจเจฟ เจเจฒเจ.
เจฐเจธเจฎเฉเจตเจพเจฆเฅค
เจเจน เจธเจพเจกเฉ เจธเจผเจฐเจพเจฌเฉ เจจเฉเฉฐ เจเจเฉฑเจฒเฉ เจเฉฑเจกเจฃ เจฆเจพ เจธเจฎเจพเจ เจนเฉ. เจเจชเจฃเฉ เจนเฉฐเจเฉ เจธเฉเจเจพเจ - เจ เจธเฉเจ เจจเจฟเจธเจผเจเจค เจคเฉเจฐ 'เจคเฉ เจเจฟเจธเฉ เจฆเจฟเจจ เจเจธ เจตเฉฑเจฒ เจตเจพเจชเจธ เจเจตเจพเจเจเฉ. เจเจ เจนเฉเจฃ เจเจธ เจฒเฉเจ เจคเฉเจ เจเจฟเจเจจ เจจเฉเฉฐ เจฐเจธเจฎเฉ เจเจฐเฉเจเฅค
เจฐเจธเจฎเฉเจตเจพเจฆ 1. SRP เจฆเฉ เจชเจฐเจฟเจญเจพเจธเจผเจพ
- เจคเฉฑเจคเจพเจ เจจเฉเฉฐ เจตเฉฑเจ เจเจฐเฉ เจคเจพเจ เจเฉ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจนเจฐ เจเฉฑเจ เจเฉเจเจผ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉเจตเฉเฅค
- เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจฆเจพ เจ เจฐเจฅ เจนเฉ "เจฌเจฆเจฒเจฃ เจฆเจพ เจเจพเจฐเจจ"เฅค เจญเจพเจต, เจตเจชเจพเจฐเจ เจคเจฐเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ, เจนเจฐเฉเจ เจคเฉฑเจค เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒเฉ เจฆเจพ เจเฉฑเจ เจนเฉ เจเจพเจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
- เจเจพเจฐเฉเจฌเจพเจฐเฉ เจคเจฐเจ เจตเจฟเฉฑเจ เจธเฉฐเจญเจพเจตเฉ เจคเจฌเจฆเฉเจฒเฉเจเจเฅค เจธเจฅเจพเจจเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ. เจธเจฎเจเจพเจฒเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃ เจตเจพเจฒเฉ เจคเฉฑเจค เจจเฉเฉเฉ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเจจเฅค
เจฐเจธเจฎเฉเจตเจพเจฆ 2. เจเจผเจฐเฉเจฐเฉ เจธเจตเฉ-เจเจพเจเจ เจฎเจพเจชเจฆเฉฐเจกเฅค
เจฎเฉเจ SRP เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจจ เจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจฎเจพเจชเจฆเฉฐเจก เจจเจนเฉเจ เจฆเฉเจเฉ เจนเจจเฅค เจชเจฐ เจเจผเจฐเฉเจฐเฉ เจธเจผเจฐเจคเจพเจ เจนเจจ:
1) เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจชเฉเฉฑเจเฉ เจเจฟ เจเจน เจเจฒเจพเจธ/เจตเจฟเจงเฉ/เจฎเฉเจกเจฟเจเจฒ/เจธเฉเจตเจพ เจเฉ เจเจฐเจฆเฉ เจนเฉเฅค เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฆเฉ เจจเจพเจฒ เจเจธเจฆเจพ เจเจตเจพเจฌ เจฆเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค ( เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆ
เจตเจฟเจเจเจฟเจ
เจนเจพเจฒเจพเจเจเจฟ, เจเจ เจตเจพเจฐ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจฒเฉฑเจญเจฃเจพ เจฌเจนเฉเจค เจฎเฉเจธเจผเจเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ
2) เจเฉฑเจ เจฌเฉฑเจ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจเจพ เจเจพเจ เจเฉฑเจ เจจเจตเฉเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจเฉเฉเจจเจพ เจซเจพเจเจฒเจพเจ/เจเจฒเจพเจธเจพเจ เจฆเฉ เจเฉฑเจเฉ-เจเฉฑเจ เจธเฉฐเจเจฟเจ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจฆเจพ เจนเฉเฅค เจเจฆเจฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ - เจเฉฑเจ.
เจตเจฟเจเจเจฟเจ
เจเจฟเจเจเจเจฟ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ (เจเจฟเจธเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจเจพเจ เจฌเฉฑเจ เจฒเจ) เจจเฉเฉฐ เจเฉฑเจ เจซเจพเจเจฒ/เจเจฒเจพเจธ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจคเฉเจธเฉเจ เจฌเจฟเจฒเจเฉเจฒ เจเจพเจฃเจฆเฉ เจนเฉ เจเจฟ เจเจฟเฉฑเจฅเฉ เจฆเฉเจเจฃเจพ เจนเฉ เจ เจคเฉ เจเฉ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจเจพ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ: เจฒเฉเจเจฟเฉฐเจ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจฆเฉ เจเจเจเจชเฉเฉฑเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจฒเจ เจธเจฟเจฐเจซ เจฒเฉเจเจฐ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค เจฌเจพเจเฉ เจเฉเจก เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเฉ เจเฉเจ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค
เจเฉฑเจ เจนเฉเจฐ เจเจฆเจพเจนเจฐเจจ เจเฉฑเจ เจจเจตเจพเจ UI เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจเฉเฉ เจฐเจฟเจนเจพ เจนเฉ, เจเฉ เจเจฟ เจชเจฟเจเจฒเฉ เจฒเฉเจเจพเจ เจตเจพเจเจ เจนเฉเฅค เจเฉเจเจฐ เจเจน เจคเฉเจนเจพเจจเฉเฉฐ 10 เจตเฉฑเจ-เจตเฉฑเจ เจธเฉฐเจธเจฅเจพเจตเจพเจ เจ เจคเฉ 15 เจตเฉฑเจ-เจตเฉฑเจ เจเจจเจตเจฐเจเจฐเจพเจ เจจเฉเฉฐ เจเฉเฉเจจ เจฒเจ เจฎเจเจผเจฌเฉเจฐ เจเจฐเจฆเจพ เจนเฉ, เจคเจพเจ เจ เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจเจธ เจจเฉเฉฐ เจเจผเจฟเจเจฆเจพ เจเจฐ เจฐเจนเฉ เจนเฉเฅค
3) เจเฉเจเจฐ เจเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจคเฉเจนเจพเจกเฉ เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉเจเจ เจตเฉฑเจ-เจตเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ 'เจคเฉ เจเฉฐเจฎ เจเจฐ เจฐเจนเฉ เจนเจจ, เจคเจพเจ เจ เจญเฉเจฆ เจนเฉเจฃ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ, เจฏเจพเจจเฉ เจเจฟ เจเฉฑเจเฉ เจธเจฎเฉเจ 'เจคเฉ เจเจ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจฆเฉเจเจฐเจพ เจเฉฑเจเฉ เจซเจพเจเจฒ/เจเจฒเจพเจธ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจฌเจนเฉเจค เจเฉฑเจ เจนเฉเฅค
เจตเจฟเจเจเจฟเจ
เจเฉ, เจเฉฑเจ เจจเจตเจพเจ เจเจชเจฐเฉเจธเจผเจจ "เจเฉเจฌเจฒ เจฆเฉ เจนเฉเจ เจพเจ เจตเฉเจกเจเจพ เจกเฉเจฒเฉเจน เจฆเจฟเจ" เจจเฉเฉฐ เจเฉเฉเจฆเฉ เจธเจฎเฉเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจฒเฉเจเจฐ, เจชเฉเจฃ เจ เจคเฉ เจกเฉเจฒเฉเจนเจฃ เจฆเฉ เจธเฉฐเจเจพเจฒเจจ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจค เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจ เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉเจเจ เจเฉเจขเฉ เจขเฉฐเจ เจจเจพเจฒ เจตเฉฐเจกเฉเจเจ เจเจเจเจ เจนเจจ. เจฌเฉเจธเจผเฉฑเจ, เจเจน เจนเจฎเฉเจธเจผเจพ เจธเฉฐเจญเจต เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพ, เจชเจฐ เจธเจพเจจเฉเฉฐ เจเจธ เจ เฉฐเจเฉเฉ เจจเฉเฉฐ เจเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจจเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ.
4) เจเจฆเฉเจ เจเจพเจฐเฉเจฌเจพเจฐเฉ เจคเจฐเจ (เจเจฟเจธเฉ เจกเจฟเจตเฉเจฒเจชเจฐ เจเจพเจ เจฎเฉเจจเฉเจเจฐ เจคเฉเจ) เจฌเจพเจฐเฉ เจธเจชเฉฑเจธเจผเจ เจธเจตเจพเจฒ เจชเฉเฉฑเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจธเจเจคเฉ เจจเจพเจฒ เจเฉฑเจ เจเจฒเจพเจธ/เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเจพเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเฉฑเจฅเฉเจ เจนเฉ เจเจพเจฃเจเจพเจฐเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเฉเฅค
เจตเจฟเจเจเจฟเจ
เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ, เจจเจฟเจฏเจฎ เจเจพเจ เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจธเฉฐเจเฉเจช เจฐเฉเจช เจตเจฟเฉฑเจ เจฒเจฟเจเฉ เจเจ เจนเจจ, เจนเจฐเฉเจ เจเฉฑเจ เจฅเจพเจ เจคเฉ, เจ เจคเฉ เจเฉเจก เจธเจชเฉเจธ เจตเจฟเฉฑเจ เจซเจฒเฉเจเจพเจ เจจเจพเจฒ เจเจฟเฉฐเจกเฉ เจนเฉเจ เจจเจนเฉเจ เจนเจจเฅค
5) เจจเจพเจฎเจเจฐเจจ เจธเจชเจธเจผเจ เจนเฉเฅค
เจตเจฟเจเจเจฟเจ
เจธเจพเจกเฉ เจเจฎเจพเจค เจเจพเจ เจตเจฟเจงเฉ เจเฉฑเจ เจเฉเจเจผ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉ, เจ เจคเฉ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจเจธ เจฆเฉ เจจเจพเจฎ เจคเฉเจ เจเจฒเจเจฆเฉ เจนเฉ
AllManagersManagerService - เจธเฉฐเจญเจพเจตเจค เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจฐเฉฑเจฌ เจตเจฐเจ
เจธเจฅเจพเจจเจ เจญเฉเจเจคเจพเจจ - เจธเจผเจพเจเจฆ เจจเจนเฉเจ
เจฐเจธเจฎเฉเจตเจพเจฆ 3. เจเจเจพเจฎ-เจชเจนเจฟเจฒเฉ เจตเจฟเจเจพเจธ เจตเจฟเจงเฉเฅค
เจกเจฟเจเจผเจพเจเจจ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค 'เจคเฉ, เจฌเจพเจเจฆเจฐ เจเจฆเจฎเฉ เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจนเฉ เจ เจคเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจนเฉฑเจฒ เจนเฉเจฃ เจฆเฉเจเจ เจธเจพเจฐเฉเจเจ เจธเฉเจเจฎเจคเจพเจตเจพเจ เจจเฉเฉฐ เจฎเจนเจฟเจธเฉเจธ เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจเจฒเจคเฉ เจเจฐ เจธเจเจฆเจพ เจนเฉ. เจคเฉเจธเฉเจ เจตเฉฑเจ-เจตเฉฑเจ เจคเจฐเฉเจเจฟเจเจ เจจเจพเจฒ เจเจฒเจคเฉเจเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ:
- เจตเฉฑเจ-เจตเฉฑเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉเจเจ เจจเฉเฉฐ เจฎเจฟเจฒเจพ เจเฉ เจตเจธเจคเฉเจเจ เจจเฉเฉฐ เจฌเจนเฉเจค เจตเฉฑเจกเจพ เจฌเจฃเจพเจ
- เจเฉฑเจ เจนเฉ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจจเฉเฉฐ เจเจ เจตเฉฑเจ-เจตเฉฑเจ เจเจฟเจธเจฎเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจก เจเฉ เจฎเฉเฉ-เจฎเฉเฉ เจเจฐเจจเจพ
- เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐเฉ เจฆเฉเจเจ เจธเฉเจฎเจพเจตเจพเจ เจจเฉเฉฐ เจเจฒเจค เจขเฉฐเจ เจจเจพเจฒ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเฉ
เจเจน เจจเจฟเจฏเจฎ เจฏเจพเจฆ เจฐเฉฑเจเจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ: "เจเฉฑเจ เจตเฉฑเจกเฉ เจเจฒเจคเฉ เจเจฐเจจเจพ เจฌเจฟเจนเจคเจฐ เจนเฉ," เจเจพเจ "เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจฏเจเฉเจจ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจเจธเจจเฉเฉฐ เจตเฉฐเจกเฉ เจจเจพเฅค" เจเฉเจเจฐ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจกเฉ เจเจฒเจพเจธ เจตเจฟเฉฑเจ เจฆเฉ เจเจฟเฉฐเจฎเฉเจตเจพเจฐเฉเจเจ เจนเจจ, เจคเจพเจ เจเจน เจ เจเฉ เจตเฉ เจธเจฎเจเจฃ เจฏเฉเจ เจนเฉ เจ เจคเฉ เจเจฒเจพเจเฉฐเจ เจเฉเจก เจตเจฟเฉฑเจ เจเฉฑเจเฉ-เจเฉฑเจ เจฌเจฆเจฒเจพเจ เจฆเฉ เจจเจพเจฒ เจฆเฉ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจ เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจธเฉฐเจ เจฆเฉ เจซเฉเจฒเจฃ เจ เจคเฉ เจเจฒเจพเจเฉฐเจ เจเฉเจก เจตเจฟเฉฑเจ เจฒเฉเฉเฉเจเจฆเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ เจเจพเจ เจเจพเจฐเจจ เจเฉฑเจ เจฆเฉ เจเฉเจเฉเจฟเจเจ เจคเฉเจ เจเจฒเจพเจธ เจจเฉเฉฐ เจเจเฉฑเจ เจพ เจเจฐเจจเจพ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจตเจงเฉเจฐเฉ เจฎเฉเจธเจผเจเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
เจเจธ เจจเฉเฉฐ เจเฉฑเจ เจฆเจฟเจจ เจเจพเจฒ เจเจฐเจจ เจฆเจพ เจธเจฎเจพเจ เจนเฉ
SRP เจฆเจพ เจฆเจพเจเจฐเจพ OOP เจ เจคเฉ SOLID เจคเฉฑเจ เจธเฉเจฎเจฟเจค เจจเจนเฉเจ เจนเฉเฅค เจเจน เจตเจฟเจงเฉเจเจ, เจซเฉฐเจเจธเจผเจจเจพเจ, เจเจฒเจพเจธเจพเจ, เจฎเฉเจกเจฟเจเจฒเจพเจ, เจฎเจพเจเจเฉเจฐเฉ เจธเจฐเจตเจฟเจธเจฟเจเจผ เจ เจคเฉ เจธเฉเจตเจพเจตเจพเจ 'เจคเฉ เจฒเจพเจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเจน "figax-figax-and-prod" เจ เจคเฉ "เจฐเจพเจเฉเจ-เจธเจพเจเฉฐเจธ" เจตเจฟเจเจพเจธ เจฆเฉเจตเจพเจ 'เจคเฉ เจฒเจพเจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเจฟเจธ เจจเจพเจฒ เจฆเฉเจจเฉเจ เจจเฉเฉฐ เจนเจฐ เจฅเจพเจ เจฅเฉเฉเฉเจนเจพ เจฌเจฟเจนเจคเจฐ เจฌเจฃเจพเจเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเฉ เจคเฉเจธเฉเจ เจเจธ เจฌเจพเจฐเฉ เจธเฉเจเจฆเฉ เจนเฉ, เจคเจพเจ เจเจน เจฒเจเจญเจ เจธเจพเจฐเฉ เจเฉฐเจเฉเจจเฉเจ เจฐเจฟเฉฐเจ เจฆเจพ เจฌเฉเจจเจฟเจเจฆเฉ เจธเจฟเจงเจพเจเจค เจนเฉ. เจฎเจเฉเจจเฉเจเจฒ เจเฉฐเจเฉเจจเฉเจ เจฐเจฟเฉฐเจ, เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ, เจ เจคเฉ เจ เจธเจฒ เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจญเจพเจเจพเจ เจคเฉเจ เจฌเจฃเจพเจเจเจ เจเจเจเจ เจนเจจ, เจ เจคเฉ "เจ เฉฐเจกเจฐเจซเฉเจฐเฉเจเจฎเฉเจเจเฉเจธเจผเจจ" เจกเจฟเจเจผเจพเจเจจเจฐเจพเจ เจจเฉเฉฐ เจฒเจเจเจคเจพ เจคเฉเจ เจตเจพเจเจเจพ เจฐเฉฑเจเจฆเฉ เจนเฉ, "เจเจตเจฐเจซเฉเจฐเฉเจเจฎเฉเจเจเฉเจธเจผเจจ" เจกเจฟเจเจผเจพเจเจจเจฐเจพเจ เจจเฉเฉฐ เจเฉเจธเจผเจฒเจคเจพ เจคเฉเจ เจตเจพเจเจเฉ เจฐเฉฑเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจฒเจค เจธเฉเจฎเจพเจตเจพเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจคเจฐเจ เจ เจคเฉ เจฎเจจ เจฆเฉ เจธเจผเจพเจเจคเฉ เจคเฉเจ เจตเจพเจเจเฉเจเจ เจฐเฉฑเจเจฆเฉเจเจ เจนเจจเฅค
SRP เจเฉเจฆเจฐเจค เจฆเฉเจเจฐเจพ เจเจพเจข เจจเจนเฉเจ เจเฉเจคเฉ เจเจ เจนเฉ เจ เจคเฉ เจเจน เจธเจนเฉ เจตเจฟเจเจฟเจเจจ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจจเจนเฉเจ เจนเฉเฅค เจเจน เจธเจพเจกเฉเจเจ เจเฉเจต-เจตเจฟเจเจฟเจเจจเจ เจ เจคเฉ เจฎเจจเฉเจตเจฟเจเจฟเจเจจเจ เจธเฉเจฎเจพเจตเจพเจ เจคเฉเจ เจฌเจพเจนเจฐ เจจเจฟเจเจฒเจฆเจพ เจนเฉเฅค เจเจน เจธเจฟเจฐเจซ เจเจช-เจฎเฉเจจ เจฆเจฟเจฎเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจจเฉเฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเจฐเจจ เจ เจคเฉ เจตเจฟเจเจธเจฟเจค เจเจฐเจจ เจฆเจพ เจเฉฑเจ เจคเจฐเฉเจเจพ เจนเฉเฅค เจเจน เจธเจพเจจเฉเฉฐ เจฆเฉฑเจธเจฆเจพ เจนเฉ เจเจฟ เจธเจฟเจธเจเจฎ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจตเจฟเจเจพเฉเจจเจพ เจนเฉเฅค เจ เจธเจฒ เจซเจพเจฐเจฎเฉเจฒเฉเจธเจผเจจ เจฒเจ เจเจพเจซเจผเฉ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจ เจเฉเจฒเฉเจชเฉเจฅเฉ เจฆเฉ เจฒเฉเฉ เจธเฉ, เจชเจฐ เจฎเฉเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ เจเจฟ เจเจน เจฒเฉเจ เจเฉเจ เจธเจฎเฉเจ เจธเจเฉเจฐเฉเจจ เจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเฉเจเจพเฅค
เจธเจฐเฉเจค: www.habr.com