เดเด เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดค เดคเดคเตเดตเด, เดเดฑเตเดฑ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดคเตเดคเดฟเดจเตเดฑเต เดคเดคเตเดตเด เดเดจเตเดจเตเด เด
เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจเต,
เดฏเตเดฃเดฟเดซเตเด เดตเตเดฐเดฟเดฏเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเดเต เดคเดคเตเดตเด - เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเตป เดตเดณเดฐเต เดตเดดเตเดตเดดเตเดชเตเดชเตเดณเตเดณ เดเดฐเต เดตเตเดฏเดเตเดคเดฟ, เดเดฐเต เดชเตเดฐเตเดเตเดฐเดพเดฎเตผ เด
เดญเดฟเดฎเตเดเดคเตเดคเดฟเตฝ เด
เดคเตเดคเดฐเดฎเตเดฐเต เดชเดฐเดฟเดญเตเดฐเดพเดจเตเดคเดฟเดฏเตเดณเตเดณ เดเตเดฆเตเดฏเด.
เด เดคเดคเตเดคเตเดตเดตเตเดฎเดพเดฏเดฟ เดเดจเตเดฑเต เดเดฆเตเดฏเดคเตเดคเต เดเตเดฐเตเดคเดฐเดฎเดพเดฏ เดชเดฐเดฟเดเดฏเด เดจเดเดจเตเดจเดคเต เดเดฆเตเดฏ เดตเตผเดทเดคเตเดคเดฟเดจเตเดฑเต เดคเตเดเดเตเดเดคเตเดคเดฟเดฒเดพเดฃเต, เดเตเดเตเดเดฟเดเดณเตเด เดชเดเตเดเดฏเตเด เดเดณเตเดณเดตเดฐเต เดฒเดพเตผเดตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเดเดณเดพเดเตเดเดพเตป เดเดพเดเตเดเดฟเดฒเตเดเตเดเต เดเตเดฃเตเดเตเดชเตเดฏเดชเตเดชเตเตพ - เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเดเตพ.
เดเดพเดเตเดเดฟเตฝ, เดเดเตเดเดณเต 8-9 เดเดณเตเดเดณเตเดเต เดเตเดฐเตเดชเตเดชเตเดเดณเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเต เดเดฐเต เดฎเดคเตเดธเดฐเด เดจเดเดคเตเดคเดฟ - เดเดคเต เดเตเดฐเตเดชเตเดชเดพเดฃเต เดเดฑเตเดฑเดตเตเด เดตเตเดเดคเตเดคเดฟเตฝ เดเดฐเต เดเตเดชเตเดชเดฟ เดตเตเดกเตเด เดเตเดเดฟเดเตเดเตเดจเตเดจเดคเต, เดเตเดฐเตเดชเตเดชเดฟเดฒเต เดเดฆเตเดฏเดคเตเดคเตเดฏเดพเตพ เดเดฐเต เดเตเดฒเดพเดธเดฟเดฒเตเดเตเดเต เดตเตเดกเตเด เดชเดเดฐเตเด, เดฐเดฃเตเดเดพเดฎเตป เด เดคเต เดเตเดเดฟเดเตเดเตเด, เดฎเตเดจเตเดจเดพเดฎเตป เดฒเดเตเดญเดเตเดทเดฃเดตเตเด. เด เดคเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดฟเดฏ เดฏเตเดฃเดฟเดฑเตเดฑเต เดเตเดฐเตเดชเตเดชเดฟเดจเตเดฑเต เดเตเดฏเตเดตเดฟเดจเตเดฑเต เด เดตเดธเดพเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดจเตเดจเต.
เดเตเดฏเต เดธเตเดธเต เดฎเตเดจเตเดจเดฟเดจเตเดฑเต เดเตเดฃเดฟเดคเดฎเดพเดฏเดฟเดฐเตเดจเตเดจ เดเตเดธเต เดเดธเตเดเตผเดชเดฟเดฏเตเดเต เดจเดฒเตเดฒ เดชเตเดฐเดฏเตเดเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.
เดจเดฟเตผเดตเตเดตเดเดจเด 1. เดเด เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด.
เดธเดฟเดเดเดฟเตพ เดฑเตเดธเตโเดชเตเตบเดธเดฟเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดฟเตปเดธเดฟเดชเตเดชเดฟเตพ (เดเดธเตโเดเตผโเดชเดฟ) เดฏเตเดเต เดเดฆเตเดฏเตเดเดฟเด เดจเดฟเตผเดตเตเดตเดเดจเด เดเดฐเต เดธเตเดฅเดพเดชเดจเดคเตเดคเดฟเดจเตเด เด เดคเดฟเดจเตเดฑเตเดคเดพเดฏ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดตเตเด เดจเดฟเดฒเดจเดฟเตฝเดชเตเดชเดฟเดจเตเดณเตเดณ เดเดพเดฐเดฃเดตเตเด เดเดฃเตเดเตเดจเตเดจเตเด เด เดคเดฟเดจเต เดเดฐเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดฎเต เดเดณเตเดณเต เดเดจเตเดจเตเด เดชเดฑเดฏเตเดจเตเดจเต.
"เดเตเดเดฟเดเตเดเดพเดฐเตป" เดเดจเตเดจ เดตเดธเตเดคเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด (เดเดฟเดชเตเดฒเตผ).
SRP เดคเดคเตเดตเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป, เดเดเตเดเตพ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดเตเดเดณเต เดฎเตเดจเตเดจเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเตเด:
- เดเดจเตเดจเต เดเดดเดฟเดเตเดเตเดจเตเดจเต (เดชเดตเตผ เดเดชเตเดชเดฑเตเดทเตป)
- เดเดฐเต เดชเดพเดจเตเดฏเด (เดกเตเดฐเดฟเดเตเดเต เดเดชเตเดชเดฑเตเดทเตป)
- เดเดฐเดพเตพเดเตเดเต เดฒเดเตเดญเดเตเดทเดฃเดฎเตเดฃเตเดเต (เดเตเดเตเดเตเดฌเตเดฑเตเดฑเต เดเดชเตเดชเดฑเตเดทเตป)
เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเดฟเตฝ เดชเดเตเดเตเดเตเดเตเดเตเดจเตเดจ เดเดฐเตเดฐเตเดคเตเดคเดฐเตเด เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเดเต เดเดฐเต เดเดเดเดคเตเดคเดฟเดจเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดเดณเดพเดฃเต, เด เดคเดพเดฏเดคเต, เดเดฐเต เดเดฑเตเดฑเตเดฎเดฟเดเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดฎเตเดฃเตเดเต - เดเตเดเดฟเดเตเดเตเด, เดเดดเดฟเดเตเดเตเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฒเดเตเดญเดเตเดทเดฃเด เดเตเดฏเตเดฏเตเด.
เดเตเดเดฟเดตเตเดณเตเดณ เดฆเตเดตเดพเดฐเด, เด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพเดเตเดเตเดณเตเดณ เดเดฐเต เดฎเตเตปเดญเดพเดเดฎเดพเดฃเต:
ัlass Tippler {
//...
void Act(){
_pourOperation.Do() // ะฝะฐะปะธัั
_drinkUpOperation.Do() // ะฒัะฟะธัั
_takeBiteOperation.Do() // ะทะฐะบััะธัั
}
}
เดเดจเตเดคเตเดเตเดฃเตเดเต?
เดฎเดจเตเดทเตเดฏเดจเดพเดฏ เดชเตเดฐเตเดเตเดฐเดพเดฎเตผ เดเตเดฐเดเตเดเตป-เดฎเดจเตเดทเตเดฏเดจเต เดเตเดกเต เดเดดเตเดคเตเดจเตเดจเต, เดเตเดฐเดเตเดเตป-เดฎเดจเตเดทเตเดฏเตป เด
เดถเตเดฐเดฆเตเดงเดจเตเด เดฎเดฃเตเดเดจเตเด เดเดชเตเดชเตเดดเตเด เดคเดฟเดฐเดเตเดเดฟเดฒเดพเดฃเต. เดเดฐเตเดธเดฎเดฏเด 3-7 เดชเดฆเดเตเดเตพ เด
เดฏเดพเตพเดเตเดเต เดชเดฟเดเดฟเดเตเดเดพเดจเตเด เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด.
เดเดฐเต เดฎเดฆเตเดฏเดชเดพเดจเดฟเดฏเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด เดฎเตเดจเตเดจเต เดจเดฟเดฌเดจเตเดงเดจเดเตพ เดเดฃเตเดเต. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดฐเต เดทเตเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เดเตเดกเต เดเดดเตเดคเดฟเดฏเดพเตฝ, เด
เดคเดฟเตฝ เดเตเดเดณเตเด เดเดฃเตเดฃเดเดเดณเตเด เดตเดดเดเตเดเตเดเดณเตเด เดฐเดพเดทเตเดเตเดฐเตเดฏเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เด
เดจเดจเตเดคเดฎเดพเดฏ เดตเดพเดฆเดเตเดเดณเตเด เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเด. เดเดคเตเดฒเตเดฒเดพเด เดเดฐเต เดฐเตเดคเดฟเดฏเตเดเต เดถเดฐเตเดฐเดคเตเดคเดฟเตฝ เดเดฏเดฟเดฐเดฟเดเตเดเตเด. เดจเดฟเดเตเดเดณเตเดเต เดชเดฐเดฟเดถเตเดฒเดจเดคเตเดคเดฟเตฝ เด
เดคเตเดคเดฐเด เดเตเดกเต เดจเดฟเดเตเดเตพ เดเดฃเตเดเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดเดจเดฟเดเตเดเต เดเดฑเดชเตเดชเตเดฃเตเดเต. เดฎเดจเดธเตเดธเดฟเดจเต เดธเดเดฌเดจเตเดงเดฟเดเตเดเดฟเดเดคเตเดคเตเดณเด เดเดฑเตเดฑเดตเตเด เดฎเดพเดจเตเดทเดฟเดเดฎเดพเดฏ เดชเดฐเตเดเตเดทเดฃเดฎเดฒเตเดฒ.
เดฎเดฑเตเดตเดถเดคเตเดคเต, เดเตเดฐเดเตเดเตป เดฎเดจเตเดทเตเดฏเตป เดคเดจเตเดฑเต เดคเดฒเดฏเดฟเตฝ เดฏเดฅเดพเตผเดคเตเดฅ เดฒเตเดเดคเตเดคเดฟเดฒเต เดตเดธเตเดคเตเดเตเดเดณเต เด เดจเตเดเดฐเดฟเดเตเดเดพเตป เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตเดคเดฟเดเตเดเตเดณเตเดณเดคเดพเดฃเต. เด เดตเดจเตเดฑเต เดญเดพเดตเดจเดฏเดฟเตฝ, เด เดฏเดพเตพเดเตเดเต เด เดตเดฏเต เดเดฐเตเดฎเดฟเดเตเดเต เดคเดณเตเดณเดพเดจเตเด เด เดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดคเดฟเดฏ เดตเดธเตเดคเตเดเตเดเตพ เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเดพเดจเตเด เด เดคเต เดฐเตเดคเดฟเดฏเดฟเตฝ เด เดตเดฏเต เดตเตเตผเดชเตเดเตเดคเตเดคเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดฐเต เดชเดดเดฏ เดฎเตเดกเตฝ เดเดพเตผ เดธเดเตเดเตฝเดชเตเดชเดฟเดเตเดเตเด. เดจเดฟเดเตเดเดณเตเดเต เดญเดพเดตเดจเดฏเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดตเดพเดคเดฟเตฝ เดคเตเดฑเดเตเดเดพเดจเตเด เดกเตเตผ เดเตเดฐเดฟเด เด เดดเดฟเดเตเดเดพเดจเตเด เดตเดฟเตปเดกเต เดฒเดฟเดซเตเดฑเตเดฑเต เดฎเตเดเตเดเดพเดจเดฟเดธเดเตเดเตพ เดเดพเดฃเดพเดจเตเด เดเดดเดฟเดฏเตเด, เด เดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดฟเดฏเดฑเตเดเดณเตเดฃเตเดเดพเดเตเด. เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดฎเตเดทเตเดจเตเดฑเต เดเดฒเตเดฒเดพ เดเดเดเดเตเดเดณเตเด เดเดฐเต เดธเดฎเดฏเด เดเดฐเต "เดฒเดฟเดธเตเดฑเตเดฑเดฟเดเดเดฟเตฝ" เดเดพเดฃเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดเตเดฑเดเตเดเดคเต "เดเตเดฐเดเตเดเตป เดฎเดจเตเดทเตเดฏเดจเต" เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
เด เดคเดฟเดจเดพเตฝ, เดนเตเดฏเตเดฎเตป เดชเตเดฐเตเดเตเดฐเดพเดฎเตผเดฎเดพเตผ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดธเดเดตเดฟเดงเดพเดจเดเตเดเดณเต เดธเดเตเดเตเตผเดฃเตเดฃเดตเตเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดฒเตเดฒเดพเดคเตเดคเดคเตเดฎเดพเดฏ เดเดเดเดเตเดเดณเดพเดฏเดฟ เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดคเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเตเดคเดฟเดเดณเดฟเตฝ เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเดพเด: เดชเดฒ เดชเดดเดฏ เดเดพเดฑเตเดเดณเดฟเดฒเตเด, เดเดฏเตผ เดกเดเตเดฑเตเดฑเต เดตเดพเดคเดฟเดฒเดฟเดฒเตเดเตเดเต เดชเตเดเตเดจเตเดจเต, เดเดงเตเดจเดฟเด เดเดพเดฑเตเดเดณเดฟเตฝ, เดฒเตเดเตเดเต เดเดฒเดเตเดเตเดฐเตเดฃเดฟเดเตเดธเดฟเดฒเต เดเดฐเต เดชเดฐเดพเดเดฏเด เดเดเตเดเดฟเตป เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดเดฏเตเดจเตเดจเต, เดเดคเต เด เดฑเตเดฑเดเตเดฑเตเดฑเดชเตเดชเดฃเดฟ เดธเดฎเดฏเดคเตเดคเต เดเดฐเต เดชเตเดฐเดถเตเดจเดฎเดพเดเตเด.
เดเดชเตเดชเตเตพ, SRP เดเดจเตเดจเดคเต เดเดเตเดเดจเต เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเดพเด, เด เดคเดพเดฏเดคเต, เดตเดฟเดญเดเดจ เดฐเตเด เดเดตเดฟเดเต เดตเดฐเดฏเตเดเตเดเดฃเด เดเดจเตเดจเต เดตเดฟเดถเดฆเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดคเดคเตเดตเดฎเดพเดฃเต.
"เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด" เดเดจเตเดจ เดตเดฟเดญเดเดจ เดคเดคเตเดตเดฎเดจเตเดธเดฐเดฟเดเตเดเต, เด เดคเดพเดฏเดคเต, เดเดฟเดฒ เดตเดธเตเดคเตเดเตเดเดณเตเดเต เดเตเดฎเดคเดฒเดเตพ เด เดจเตเดธเดฐเดฟเดเตเดเต เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เด เดฆเตเดฆเตเดนเด เดชเดฑเดฏเตเดจเตเดจเต.
เดจเดฎเตเดเตเดเต เดฎเดฆเตเดฏเดชเดพเดจเดคเตเดคเดฟเดฒเตเดเตเดเตเด เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ เดฎเดจเตเดทเตเดฏเดจเต เดฒเดญเดฟเดเตเดเตเดจเตเดจ เดเตเดฃเดเตเดเดณเดฟเดฒเตเดเตเดเตเด เดฎเดเดเตเดเดพเด:
- เดเดฒเตเดฒเดพ เดคเดฒเดคเตเดคเดฟเดฒเตเด เดเตเดกเต เดตเดณเดฐเต เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต
- เดเดฐเตเดธเดฎเดฏเด เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเตเดเตเดฐเดพเดฎเตผเดฎเดพเตผเดเตเดเต เดเตเดกเต เดเดดเตเดคเดพเด (เดเดฐเตเดฐเตเดคเตเดคเดฐเตเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดเดเด เดเดดเตเดคเตเดจเตเดจเต)
- เดเดเตเดเตเดฎเตเดฑเตเดฑเดกเต เดเตเดธเตเดฑเตเดฑเดฟเดเดเต เดฒเดณเดฟเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต - เดฒเดณเดฟเดคเดฎเดพเดฏ เดฎเตเดฒเดเด, เด เดคเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดฃเต
- เดเตเดกเดฟเดจเตเดฑเต เดเดเดจ เดฆเตเดถเตเดฏเดฎเดพเดเตเดจเตเดจเต - เดจเดฟเดเตเดเตพเดเตเดเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเดพเด เดกเตเดฐเดฟเดเตเดเต เดเดชเตเดชเดฑเตเดทเตป เดเดฐเต เดฎเดฆเตเดฏเดชเดพเดจเดฟ เดฎเตเดถเดฏเตเดเตเดเดเดฟเดฏเดฟเตฝ เดฆเตเดฐเดพเดตเดเด เดเดดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดชเตเดชเดฑเตเดทเดจเดฟเดฒเตเดเตเดเต. เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดจเดฟเดเตเดเตพ เดตเตเดจเตเด เดตเตเดณเตเดณเดตเตเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดตเตเดกเตเดเดฏเตเด เดฌเดฟเดฏเดฑเตเด เดเดฒเตผเดคเตเดคเตเดจเตเดจ เดเดฐเต เดเดชเตเดชเดฑเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดชเดเดฐเตเดจเตเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเด. เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดเดตเดถเตเดฏเดเดคเดเดณเต เดเดถเตเดฐเดฏเดฟเดเตเดเต, เดฐเตเดคเดฟ เดเตเดกเต เดธเตเดชเตผเดถเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฒเตเดฒเดพเด เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด เดเดฟเดชเตเดฒเตผ.เดเดเตเดเต.
- เด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดนเตเดฒเดพเดฆเด เดฎเดเดเตเดเดพเตป เดเดดเดฟเดฏเตเด (เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดฎเดพเดคเตเดฐเด เดเตเดเตเดเตเดฌเดฟเดฑเตเดฑเต เดเดชเตเดชเดฑเตเดทเตป), เดฎเดฆเตเดฏเด (เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดฎเดพเดคเตเดฐเด เดกเตเดฐเดฟเดเตเดเต เดเดชเตเดชเดฑเตเดทเตป เดเตเดชเตเดชเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเตเดฐเดฟเดเตเดเต) เดเตเดเดพเดคเต เดฎเดฑเตเดฑเต เดชเดฒ เดฌเดฟเดธเดฟเดจเดธเต เดเดตเดถเตเดฏเดเดคเดเดณเตเด เดจเดฟเดฑเดตเตเดฑเตเดฑเตเด.
(เด, เดเดคเต เดเดคเดฟเดจเดเด เดเดฐเต 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- เดฏเตเดเต เดฎเดฑเตเดฑเตเดฐเต เดจเดฟเตผเดตเดเดจเด เดเดฃเตเดเตเดคเตเดคเตเด - เดเด เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเดณเตเดณ เดคเดคเตเดตเด.
เดเดธเตโเดธเดฟโเดชเดฟ เดชเตเดฐเดธเตโเดคเดพเดตเดฟเดเตเดเตเดจเตเดจเต "เดเดฐเต เดฎเตเดกเตเดฏเตเดณเดฟเดจเต เดฎเดพเดฑเตเดฑเดพเตป เดเดฐเตเดฏเตเดฐเต เดเดพเดฐเดฃเดฎเตเดฃเตเดเต". เด เดคเดพเดฏเดคเต, "เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดฎเดพเดฃเต เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเดณเตเดณ เดเดพเดฐเดฃเด."
(เดฏเดฅเดพเตผเดคเตเดฅ เดจเดฟเตผเดตเดเดจเด เดเตเดฃเตเดเตเดตเดจเตเดจ เดเตบเดเตเดเตเดเดฟเดเตพ เดเตเดฐเดเตเดเตป เดฎเดจเตเดทเตเดฏเดจเตเดฑเต เดเตเดฒเดฟเดชเดคเดฟเดเต เดเดดเดฟเดตเตเดเดณเดฟเตฝ เดเดคเตเดฎเดตเดฟเดถเตเดตเดพเดธเดฎเตเดณเตเดณเดตเดฐเดพเดฃเตเดจเตเดจเต เดคเตเดจเตเดจเตเดจเตเดจเต)
เดเดชเตเดชเตเตพ เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดตเดฐเตเดจเตเดจเต. เดตเตเดตเตเดตเตเดฑเต, เดจเดฎเตเดเตเดเต เดเดดเดฟเดเตเดเตเดจเตเดจเดคเตเด เดเตเดเดฟเดเตเดเตเดจเตเดจเดคเตเด เดฒเดเตเดญเดเตเดทเดฃเด เดเดดเดฟเดเตเดเตเดจเตเดจเดคเตเดฎเดพเดฏ เดจเดเดชเดเดฟเดเตเดฐเดฎเดเตเดเตพ เดฎเดพเดฑเตเดฑเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดพเตฝ เดฎเดฆเตเดฏเดชเดพเดจเดฟเดฏเดฟเตฝ เดคเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเตเดฐเดฎเดตเตเด เดเดเดจเดฏเตเด เดฎเดพเดฑเตเดฑเดพเตป เดฎเดพเดคเตเดฐเดฎเต เดเดดเดฟเดฏเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดฎเตเดชเต เดฒเดเตเดญเดเตเดทเดฃเด เดจเตเดเตเดเตเดเดฏเต เดเดฐเต เดเตเดธเตเดฑเตเดฑเดฟเดจเตเดฑเต เดตเดพเดฏเดจ เดเตเตผเดเตเดเตเดเดฏเต เดเตเดฏเตเดฏเตเด.
"เดซเตเตผเดตเตเดกเต เดเดจเตเดฑเต เดเตบเดฒเดฟ เดซเตเตผเดตเตเดกเต" เดเดจเตเดจ เดธเดฎเตเดชเดจเดคเตเดคเดฟเตฝ, เดฎเดพเดฑเตเดฑเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเตเดฒเตเดฒเดพเด เดฎเตเดคเตเดคเตเดกเดฟเตฝ เดฎเดพเดคเตเดฐเด เดฎเดพเดฑเตเดฑเดชเตเดชเตเดเตเดจเตเดจเต เดจเดฟเดฏเดฎเด. เดเตเดฑเดเตเดเต เดฒเตเดเดฟเดเตเดเต เดเดณเตเดณเดชเตเดชเตเตพ เดเดคเต เดตเดพเดฏเดฟเดเตเดเดพเดตเตเดจเตเดจเดคเตเด เดซเดฒเดชเตเดฐเดฆเดตเตเดฎเดพเดฃเต, เดชเดเตเดทเต เดชเดฒเดชเตเดชเตเดดเตเด เดเดคเต 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)
}
}
}
เดธเตเดเตเดทเตเดฎเดฎเดพเดฏ เดตเดพเดฏเดจเดเตเดเดพเดฐเตป เด เดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด เดฒเตเดเต เดเดซเตเดฑเตเดฑเตผ, เดฎเตเดฎเตเดชเต เดฒเตเดเต เดเตเดฏเตเดฏเตเด ะธ เดเดฐเต เดชเดฟเดถเดเต เดตเตเดฏเดเตเดคเดฟเดเดคเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดฑเดพเดจเตเด เดเดดเดฟเดฏเตเด, เดเตเดเดพเดคเต, เดฎเตเดฎเตเดชเดคเตเดคเต เดเดเตเดเดเตเดเดณเตเดฎเดพเดฏเดฟ เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดฟเดจเดพเตฝ, เดฎเตเดจเตเดจเต เดเตเดฒเดพเดธเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเด: PourLoggerBefore, PourLoggerAfter ะธ PourErrorLogger.
เดเดฐเต เดฎเดฆเตเดฏเดชเดพเดจเดฟเดเตเดเต เดฎเตเดจเตเดจเต เดเดชเตเดชเดฑเตเดทเดจเตเดเดณเตเดฃเตเดเตเดจเตเดจเต เดเตผเดเตเดเตเดฎเตเดชเตเตพ, เดเดเตเดเตพเดเตเดเต เดเดฎเตเดชเดคเต เดฒเตเดเตเดเดฟเดเดเต เดเตเดฒเดพเดธเตเดเตพ เดฒเดญเดฟเดเตเดเตเด. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดฎเตเดดเตเดตเตป เดฎเดฆเตเดฏเดชเดพเดจ เดธเตผเดเตเดเดฟเดณเดฟเดฒเตเด 14 (!!!) เดเตเดฒเดพเดธเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดนเตเดชเตเดชเตผเดฌเตเดณ? เดเดทเตเดเดฟเดเตเดเต! เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดเตเดฐเดจเตเดกเตเดณเตเดณ เดเดฐเต เดเตเดฐเดเตเดเตป เดฎเดจเตเดทเตเดฏเตป โเดชเดฑเดเตเดเตเดจเตเดจเดฏเดพเดณเตโ เดเดฐเต เดกเตเดเดพเดจเตเดฑเตผ, เดเดฐเต เดเตเดฒเดพเดธเต, เดชเดเดฐเตเดจเตเดจ เดเดชเตเดชเดฑเตเดฑเตเดฑเตผเดฎเดพเตผ, เดเดฐเต เดเดฒเดตเดฟเดคเดฐเดฃ เดธเตเดตเดจเด, เดคเดจเตเดฎเดพเดคเตเดฐเดเดณเตเดเต เดเตเดเตเดเดฟเดฏเดฟเดเดฟเดฏเตเดเต เดญเตเดคเดฟเด เดฎเดพเดคเตเด เดเดจเตเดจเดฟเดเตเดเดจเต เดตเดฟเดญเดเดฟเดเตเดเตเด, เด เดเตเดคเตเดค เดชเดพเดฆเดคเตเดคเดฟเตฝ เด เดตเตป เดเดถเตเดฐเดฟเดคเดคเตเดตเดเตเดเตพ เด เดดเดฟเดเตเดเตเดฎเดพเดฑเตเดฑเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด. เดเดเตเดณ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ. เดเดจเตเดจเต เดตเดฟเดถเตเดตเดธเดฟเดเตเดเต, เด เดตเตป เดจเดฟเตผเดคเตเดคเตเดเดฏเดฟเดฒเตเดฒ.
เด เดเดเตเดเดคเตเดคเดฟเดฒเดพเดฃเต เดเดธเตเดเตผเดชเดฟ เดชเดฟเดเตเดเต เดฐเดพเดเตเดฏเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฏเดเตเดทเดฟเดเตเดเดฅเดเดณเดพเดฃเตเดจเตเดจ เดจเดฟเดเดฎเดจเดคเตเดคเดฟเดฒเตเดคเตเดคเดฟ เดชเดฒเดฐเตเด เดจเตเดกเดฟเตฝเดธเต เดเดณเดฟเดเตเดเดพเตป เดชเตเดเตเดจเตเดจเดคเต ...
... 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 เดตเดฐเดฟเดเตพเดเตเดเดพเดฏเดฟ เดเดฐเต GOD เดฐเตเดคเดฟ เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต:
- 1C เดฒเตเดเตเดเต เดชเตเดฏเดฟ เดเดฐเต เด เดเตเดเตเดฃเตเดเต เดธเตเดทเตเดเดฟเดเตเดเตเด
- เด เด เดเตเดเตเดฃเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดชเตเดฏเตเดฎเตเดจเตเดฑเต เดฎเตเดกเตเดฏเตเดณเดฟเดฒเตเดเตเดเต เดชเตเดฏเดฟ เด เดตเดฟเดเต เด เดคเต เดธเตเดทเตเดเดฟเดเตเดเตเด
- เดชเตเดฐเดงเดพเดจ เดธเตเตผเดตเดฑเดฟเตฝ เด เดคเตเดคเดฐเดฎเตเดฐเต เด เดเตเดเตเดฃเตเดเต เดเดณเตเดณ เดเดฐเต เด เดเตเดเตเดฃเตเดเต เดธเตเดทเตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด
- เดเดฐเต เดชเตเดคเดฟเดฏ เด เดเตเดเตเตเดฃเตเดเต เดเดฃเตเดเดพเดเตเดเตเด
- เดชเตเดฏเตโเดฎเตเดจเตเดฑเต เดฎเตเดกเตเดฏเตเดณเดฟเดฒเต เดฐเดเดฟเดธเตเดเตเดฐเตเดทเตป เดซเดฒเดเตเดเดณเตเด เดฐเดเดฟเดธเตเดเตเดฐเตเดทเตป เดซเดฒ เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเต 1c เดจเดฎเตเดชเดฑเตเด เดเตเตผเดเตเดเตเด
- เด เดชเดเตเดเดฟเดเดฏเดฟเดฒเตเดเตเดเต เด เดเตเดเตเดฃเตเดเต เดตเดฟเดตเดฐเดเตเดเตพ เดเตเตผเดเตเดเตเด
- เดชเตเดฏเดฟเดจเตเดฑเต เดธเตเดตเดจเดคเตเดคเดฟเตฝ เด เดเตเดฒเดฏเดจเตเดฑเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเต เดจเดฎเตเดชเตผ เดธเตเดทเตโเดเดฟเดเตเดเตเด. เด เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดจเดฟเดเตเดเดณเตเดเต 1c เด เดเตเดเตเดฃเตเดเต เดจเดฎเตเดชเตผ เดเตเดฎเดพเดฑเตเด.
เด เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เดญเดฏเดเตเดเดฐเดฎเดพเดฏ เดเดฃเดเตเดฑเตเดฑเดฟเดตเดฟเดฑเตเดฑเดฟเดฏเตเดณเตเดณ เดเดเดฆเตเดถเด 10 เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเตเดเดฟ เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เด เดเตเดเตเดฃเตเดเต เดเดฌเตเดเดเตเดฑเตเดฑเต เดเดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดชเดเตเดคเดฟ เดเตเดณเตเดเดณเดฟเดฒเตเด เดชเตเดฏเดฟเดจเตเดฑเต เดเดกเดฟเดฏเตเด เดเตเดฒเดฏเดจเตเดฑเต เดจเดพเดฎเดตเตเด เดเดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.
เดเดฐเต เดฎเดฃเดฟเดเตเดเตเตผ เดฑเตเดซเดพเดเตโเดเดฑเดฟเดเดเดฟเดจเต เดถเตเดทเด, เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ เดเตเดกเตเด เด เดเตเดเตเดฃเตเดเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฟเดฒ เดธเตเดเตเดทเตเดฎเดคเดเดณเตเด เดชเตเดฐเดคเตเดฏเตเด เดฐเตเดคเดฟเดเตพ/เดเตเดฒเดพเดธเตเดเดณเดพเดฏเดฟ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดเดดเดฟเดเตเดเต. เดเตเดกเต เดฎเตเดคเตเดคเตเดกเต เดเดคเต เดเดณเตเดชเตเดชเดฎเดพเดเตเดเดฟ, เดชเดเตเดทเต 100 เดตเดฐเดฟ เดเตเดกเต เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเต, เด เดคเต เด เดดเดฟเดเตเดเตเดตเตเดเตเดเดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒ.
เด "เดเดจเดเดเตเดฑเดเตเด" เดฐเตเดคเดฟเดฏเตเดเต เดธเดพเดฐเดพเดเดถเด เดเดฐเต เดฌเดฟเดธเดฟเดจเดธเตเดธเต เด เตฝเดเตเดฐเดฟเดคเด เดเดฃเตเดจเตเดจเต เดเตเดฑเดเตเดเต เดฆเดฟเดตเดธเดเตเดเตพเดเตเดเต เดถเตเดทเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดตเตเดฏเดเตเดคเดฎเดพเดฏเดคเต. เดธเดพเดเตเดเตเดคเดฟเด เดธเดตเดฟเดถเตเดทเดคเดเดณเตเดเต เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเดตเดฐเดฃเด เดตเดณเดฐเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด เดฐเตเดคเดฟเดฏเต เดเดทเดฃเดเตเดเดณเดพเดฏเดฟ เดคเดเตผเดเตเดเดพเดจเตเดณเตเดณ เดถเตเดฐเดฎเดฎเดพเดฃเต เดเดธเตเดเตผเดชเดฟเดฏเต เดฒเดเดเดฟเดเตเดเตเดจเตเดจเดคเต, เดคเดฟเดฐเดฟเดเตเดเตเด เด เดฒเตเดฒ.
เดเดชเดเดพเดฐเดฟเดเดค.
เดจเดฎเตเดฎเตเดเต เดฎเดฆเตเดฏเดชเดพเดจเดฟเดฏเต เดตเตเดฑเตเดคเต เดตเดฟเดเดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เดจเดฟเดเตเดเดณเตเดเต เดเดฃเตเดฃเตเดจเตเตผ เดเดฃเดเตเดเตเด - เดเดเตเดเตพ เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดเดฐเต เดฆเดฟเดตเดธเด เด เดคเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเตเด. เดเดชเตเดชเตเตพ เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด เดฑเดฟเดตเต เดเดชเดเดพเดฐเดฟเดเดฎเดพเดเตเดเดพเด.
เดซเตเตผเดฎเดฒเดฟเดธเด 1. เดเดธเตเดเตผเดชเดฟเดฏเตเดเต เดจเดฟเตผเดตเตเดตเดเดจเด
- เดเดเดเดเตเดเตพ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเด, เด เดเตเดเดจเต เด เดต เดเดฐเตเดจเตเดจเตเด เดเดฐเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเดจเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดเดณเดพเดฃเต.
- เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด เดเดจเตเดจเดคเต "เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเดณเตเดณ เดเดพเดฐเดฃเด" เดเดฃเต. เด เดคเดพเดฏเดคเต, เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฏเตเดเตเดคเดฟเดฏเตเดเต เด เดเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เดเดฐเต เดเดเดเดคเตเดคเดฟเดจเตเด เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเต เดเดฐเต เดเดพเดฐเดฃเด เดฎเดพเดคเตเดฐเดฎเตเดฏเตเดณเตเดณเต.
- เดฌเดฟเดธเดฟเดจเดธเต เดฒเตเดเดฟเดเตเดเดฟเตฝ เดธเดพเดงเตเดฏเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเดเตเดเตพ. เดชเตเดฐเดพเดฆเตเดถเดฟเดเดตเตฝเดเตเดเดฐเดฟเดเตเดเดชเตเดชเตเดเดฃเด. เดธเดฎเดเดพเดฒเดฟเดเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจ เดเดเดเดเตเดเตพ เดธเดฎเตเดชเดคเตเดคเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด.
เดเดชเดเดพเดฐเดฟเดเดค 2. เดเดตเดถเตเดฏเดฎเดพเดฏ เดธเตเดตเดฏเด เดชเดฐเดฟเดถเตเดงเดจ เดฎเดพเดจเดฆเดฃเตเดกเด.
SRP เดจเดฟเดฑเดตเตเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดคเดฟเดฏเดพเดฏ เดฎเดพเดจเดฆเดฃเตเดกเดเตเดเตพ เดเดพเตป เดเดฃเตเดเดฟเดเตเดเดฟเดฒเตเดฒ. เดเดจเตเดจเดพเตฝ เดเดตเดถเตเดฏเดฎเดพเดฏ เดตเตเดฏเดตเดธเตเดฅเดเตพ เดเดฃเตเดเต:
1) เด เดเตเดฒเดพเดธเต/เดฐเตเดคเดฟ/เดฎเตเดกเตเดฏเตเตพ/เดธเตเดตเดจเด เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดจเตเดจเต เดธเตเดตเดฏเด เดเตเดฆเดฟเดเตเดเตเด. เดจเดฟเดเตเดเตพ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดจเดฟเตผเดตเดเดจเดคเตเดคเดฟเตฝ เดเดคเตเดคเดฐเด เดจเตฝเดเดฃเด. ( เดจเดจเตเดฆเดฟ
เดตเดฟเดถเดฆเตเดเดฐเดฃเดเตเดเตพ
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดฟเดฒเดชเตเดชเตเตพ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดจเดฟเตผเดตเดเดจเด เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต
2) เดเดฐเต เดฌเดเต เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดคเดฟเดฏ เดซเตเดเตเดเตผ เดเตเตผเดเตเดเตเดจเตเดจเดคเต เดเตเดฑเดเตเด เดเดฃเตเดฃเด เดซเดฏเดฒเตเดเตพ/เดเตเดฒเดพเดธเตเดเดณเต เดฌเดพเดงเดฟเดเตเดเตเดจเตเดจเต. เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏเดฟ - เดเดจเตเดจเต.
เดตเดฟเดถเดฆเตเดเดฐเดฃเดเตเดเตพ
เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด (เดเดฐเต เดซเตเดเตเดเตผ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฌเดเต) เดเดฐเต เดซเดฏเดฒเดฟเตฝ/เดเตเดฒเดพเดธเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดตเดฟเดเตเดฏเดพเดฃเต เดจเตเดเตเดเตเดฃเตเดเดคเตเดจเตเดจเตเด เดเดจเตเดคเต เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เด เดฑเดฟเดฏเดพเด. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต: เดฒเตเดเดฟเดเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดเต เดเดเตเดเตเดชเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดตเดฟเดถเตเดทเดคเดฏเตเดเตเดเต เดฒเตเดเตผ เดฎเดพเดคเตเดฐเด เดฎเดพเดฑเตเดฑเตเดฃเตเดเดคเตเดฃเตเดเต. เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดเตเดกเตเดเดณเดฟเดฒเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.
เดฎเตเดฎเตเดชเดคเตเดคเตเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดฟ เดเดฐเต เดชเตเดคเดฟเดฏ เดฏเตเด เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด เดเตเตผเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดฎเดฑเตเดฑเตเดฐเต เดเดฆเดพเดนเดฐเดฃเด. 10 เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดเดณเตเด 15 เดตเตเดฏเดคเตเดฏเดธเตเดค เดเตบเดตเตเตผเดเตเดเดฑเตเดเดณเตเด เดเตเตผเดเตเดเดพเตป เดเดคเต เดจเดฟเดเตเดเดณเต เดชเตเดฐเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพ เด เดคเต เด เดฎเดฟเดคเดฎเดพเดฏเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดพเดฏเดฟ เดคเตเดจเตเดจเตเดจเตเดจเต.
3) เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเดตเดฟเดถเตเดทเดคเดเดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดฐเต เดฒเดฏเดจ เดตเตเดฐเตเดฆเตเดงเตเดฏเดคเตเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค, เด เดคเดพเดฏเดคเต, เดเดฐเต เดซเดฏเตฝ/เดเตเดฒเดพเดธเต เดเดฐเต เดธเดฎเดฏเด เดจเดฟเดฐเดตเดงเดฟ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดฎเดพเดฑเตเดฑเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดตเดณเดฐเต เดเตเดฑเดตเดพเดฃเต.
เดตเดฟเดถเดฆเตเดเดฐเดฃเดเตเดเตพ
โเดฎเตเดถเดฏเตเดเต เด เดเดฟเดฏเดฟเตฝ เดตเตเดกเตเด เดเดดเดฟเดเตเดเตเดโ เดเดจเตเดจ เดเดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเตเตผเดเตเดเตเดฎเตเดชเตเตพ, เดจเดฟเดเตเดเตพ เดฒเตเดเดฑเดฟเดจเตเดฏเตเด เดฎเดฆเตเดฏเดชเดพเดจเดคเตเดคเดฟเดจเตเดฑเตเดฏเตเด เดเดดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเตเดฏเตเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต เดฌเดพเดงเดฟเดเตเดเดฃเดฎเตเดเตเดเดฟเตฝ, เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดเตเดเตพ เดตเดณเดเตเดเดคเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเดชเตเดชเตเดเตเดเดคเดพเดฏเดฟ เดคเตเดจเตเดจเตเดจเตเดจเต. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดคเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เด เดเดฃเดเตเดเต เดเตเดฑเดฏเตเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดฃเด.
4) เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฒเตเดเดฟเดเต (เดเดฐเต เดกเดตเดฒเดชเตเดชเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดจเตเดเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต) เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดฆเตเดฏเด เดเตเดฆเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดจเดฟเดเตเดเตพ เดเตผเดถเดจเดฎเดพเดฏเดฟ เดเดฐเต เดเตเดฒเดพเดธเต/เดซเดฏเดฒเดฟเตฝ เดชเตเดฏเดฟ เด เดตเดฟเดเต เดจเดฟเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเต เดตเดฟเดตเดฐเดเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเต.
เดตเดฟเดถเดฆเตเดเดฐเดฃเดเตเดเตพ
เดซเตเดเตเดเดฑเตเดเดณเตเด เดจเดฟเดฏเดฎเดเตเดเดณเตเด เด เตฝเดเดฐเดฟเดคเดเตเดเดณเตเด เดเดคเตเดเตเดเดฎเตเดณเตเดณเดตเดฏเดพเดฃเต, เดเดฐเตเดจเตเดจเตเด เดเดฐเดฟเดเดคเตเดคเต, เดเตเดกเต เดธเตโเดชเตเดฏเตโเดธเดฟเดฒเตเดเดจเตเดณเด เดซเตเดฒเดพเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฟเดคเดฑเดฟเดเตเดเดฟเดเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
5) เดจเดพเดฎเดเดฐเดฃเด เดตเตเดฏเดเตเดคเดฎเดพเดฃเต.
เดตเดฟเดถเดฆเตเดเดฐเดฃเดเตเดเตพ
เดเดเตเดเดณเตเดเต เดเตเดฒเดพเดธเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฐเตเดคเดฟ เดเดฐเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเดจเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฃเต, เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด เด เดคเดฟเดจเตเดฑเต เดชเตเดฐเดฟเตฝ เดชเตเดฐเดคเดฟเดซเดฒเดฟเดเตเดเตเดจเตเดจเต
AllManagersManagerService - เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดฐเต เดฆเตเดต เดเตเดฒเดพเดธเต
เดชเตเดฐเดพเดฆเตเดถเดฟเด เดชเตเดฏเตโเดฎเตเดจเตเดฑเต - เดเดฐเตเดชเดเตเดทเต เดเดฒเตเดฒ
เดเดชเดเดพเดฐเดฟเดเดค 3. เดเดเตเดเดพเด-เดซเดธเตเดฑเตเดฑเต เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดฎเตเดคเตเดคเดกเตเดณเดเดฟ.
เดฐเตเดชเดเตฝเดชเตเดชเดจเดฏเตเดเต เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ, เดเตเดฐเดเตเดเตป เดฎเดจเตเดทเตเดฏเดจเต เด เดฑเดฟเดฏเดฟเดฒเตเดฒ, เดชเตเดฐเดถเตเดจเด เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฒเตเดฒเดพ เดธเตเดเตเดทเตเดฎเดคเดเดณเตเด เด เดจเตเดญเดตเดชเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒ, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เดเดฐเต เดคเตเดฑเตเดฑเต เดตเดฐเตเดคเตเดคเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเตเดคเดฟเดเดณเดฟเตฝ เดคเตเดฑเตเดฑเตเดเตพ เดตเดฐเตเดคเตเดคเดพเด:
- เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดเตเดเตพ เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดฃเตเดเต เดเดฌเตโเดเดเตโเดฑเตเดฑเตเดเตพ เดตเดณเดฐเต เดตเดฒเตเดคเดพเดเตเดเตเด
- เดเดฐเตเดฑเตเดฑ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดคเตเดคเต เดชเดฒ เดคเดฐเดเตเดเดณเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเต เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเด
- เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดคเตเดคเดฟเดจเตเดฑเต เด เดคเดฟเดฐเตเดเตพ เดคเตเดฑเตเดฑเดพเดฏเดฟ เดจเดฟเตผเดตเดเดฟเดเตเดเตเด
เดจเดฟเดฏเดฎเด เดเตผเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดฃเตเดเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต: "เดเดฐเต เดตเดฒเดฟเดฏ เดคเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต" เด เดฒเตเดฒเตเดเตเดเดฟเตฝ "เดจเดฟเดเตเดเตพเดเตเดเต เดเดฑเดชเตเดชเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดคเต เดตเดฟเดญเดเดฟเดเตเดเดฐเตเดคเต." เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเดเตเดเดณเตเดเต เดเตเดฒเดพเดธเดฟเตฝ เดฐเดฃเตเดเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดคเต เดเดชเตเดชเตเดดเตเด เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเดตเตเดจเตเดจเดคเตเดฏเตเดณเตเดณเต, เดเตเดเดพเดคเต เดเตเดฒเดฏเดจเตเดฑเต เดเตเดกเดฟเดฒเต เดเดฑเตเดฑเดตเตเด เดเตเดฑเดฟเดฏ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเต เดฐเดฃเตเดเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเดพเด. เดชเดฒ เดซเดฏเดฒเตเดเดณเดฟเดฒเตเด เดธเดจเตเดฆเตผเดญเด เดตเตเดฏเดพเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฒเตเด เดเตเดฒเดฏเดจเตเดฑเต เดเตเดกเดฟเตฝ เดเดตเดถเตเดฏเดฎเดพเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเดเดณเตเดเต เด เดญเดพเดตเดตเตเด เดเดพเดฐเดฃเด เดเตเดฒเดพเดธเต เดเดทเตเดฃเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเตเดฒเดพเดธเต เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเตเดเตเดคเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต.
เดเดฐเต เดฆเดฟเดตเดธเด เดตเดฟเดณเดฟเดเตเดเดพเตป เดธเดฎเดฏเดฎเดพเดฏเดฟ
SRP-เดฏเตเดเต เดตเตเดฏเดพเดชเตเดคเดฟ OOP, SOLID เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดฎเดพเดคเตเดฐเด เดเดคเตเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เดฐเตเดคเดฟเดเตพ, เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ, เดเตเดฒเดพเดธเตเดเตพ, เดฎเตเดกเตเดฏเตเดณเตเดเตพ, เดฎเตเดเตเดฐเต เดธเตผเดตเตเดธเตเดเตพ, เดธเตเดตเดจเดเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตเดเตเดเต เดเดคเต เดฌเดพเดงเดเดฎเดพเดฃเต. "figax-figax-and-prod", "rocket-science" เดตเดฟเดเดธเดจเด เดเดจเตเดจเดฟเดตเดฏเตเดเตเดเต เดเดคเต เดฌเดพเดงเดเดฎเดพเดฃเต, เดฒเตเดเดคเตเดคเต เดเดฒเตเดฒเดพเดฏเดฟเดเดคเตเดคเตเด เด เตฝเดชเตเดชเด เดฎเตเดเตเดเดชเตเดชเตเดเตเดเดคเดพเดเตเดเตเดจเตเดจเต. เดจเดฟเดเตเดเตพ เด เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดฟเดจเตเดคเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดคเต เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดฒเตเดฒเดพ เดเดเตเดเดฟเดจเตเดฏเดฑเดฟเดเดเตเดเดณเตเดเตเดฏเตเด เด เดเดฟเดธเตเดฅเดพเดจ เดคเดคเตเดตเดฎเดพเดฃเต. เดฎเตเดเตเดเดพเดจเดฟเดเตเดเตฝ เดเดเตเดเดฟเดจเตเดฏเดฑเดฟเดเดเต, เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดธเดเดตเดฟเดงเดพเดจเดเตเดเตพ, เดเดฒเตเดฒเดพ เดธเดเตเดเตเตผเดฃเตเดฃ เดธเดเดตเดฟเดงเดพเดจเดเตเดเดณเตเด เดเดเดเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต, เดเตเดเดพเดคเต "เด เดฃเตเดเตผ เดซเตเดฐเดพเดเตเดฎเตเดจเตเดฑเตเดทเตป" เดกเดฟเดธเตเดจเตผเดฎเดพเตผเดเตเดเต เดตเดดเดเตเดเด เดจเดทเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต, "เดเดตเตผ เดซเตเดฐเดพเดเตเดฎเตเดจเตเดฑเตเดทเตป" เดกเดฟเดธเตเดจเตผเดฎเดพเดฐเตเดเต เดเดพเดฐเตเดฏเดเตเดทเดฎเดค เดจเดทเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต, เดคเตเดฑเตเดฑเดพเดฏ เด เดคเดฟเดฐเตเดเตพ เด เดตเตผเดเตเดเต เดฏเตเดเตเดคเดฟเดฏเตเด เดฎเดจเดธเตเดธเดฎเดพเดงเดพเดจเดตเตเด เดจเดทเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต.
SRP เดชเตเดฐเดเตเดคเดฟเดฏเดพเตฝ เดเดฃเตเดเตเดชเดฟเดเดฟเดเตเดเดคเดฒเตเดฒ, เดเตเดคเตเดฏเดฎเดพเดฏ เดถเดพเดธเตเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต เดญเดพเดเดฎเดฒเตเดฒ. เดเดคเต เดจเดฎเตเดฎเตเดเต เดเตเดตเดถเดพเดธเตเดคเตเดฐเดชเดฐเดตเตเด เดฎเดพเดจเดธเดฟเดเดตเตเดฎเดพเดฏ เดชเดฐเดฟเดฎเดฟเดคเดฟเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเตเดจเตเดจเต.เดเตเดฐเดเตเดเตป-เดฎเดจเตเดทเตเดฏเดจเตเดฑเต เดคเดฒเดเตเดเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดธเดเดตเดฟเดงเดพเดจเดเตเดเดณเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเดพเดจเตเด เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเดฎเตเดณเตเดณ เดเดฐเต เดฎเดพเตผเดเดฎเดพเดฃเดฟเดคเต. เดเดฐเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดเตเดเดจเต เดตเดฟเดเดเดฟเดชเตเดชเดฟเดเตเดเดพเดฎเตเดจเตเดจเต เด เดฆเตเดฆเตเดนเด เดจเดฎเตเดฎเตเดเต เดชเดฑเดฏเตเดจเตเดจเต. เดฏเดฅเดพเตผเดคเตเดฅ เดฐเตเดชเตเดเดฐเดฃเดคเตเดคเดฟเดจเต เดจเตเดฏเดพเดฏเดฎเดพเดฏ เดคเตเด เดเตเดฒเดฟเดชเดคเดฟ เดเดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เด เดฒเตเดเดจเด เดเดฟเดฒ เดชเตเดเดฎเดฑเดเตพ เดฎเดพเดฏเตโเดเตเดเตเดฎเตเดจเตเดจเต เดเดพเตป เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต.
เด เดตเดฒเดเดฌเด: www.habr.com