เดเด• เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดค เดคเดคเตเดตเด‚. เดคเต‹เดจเตเดจเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดฒเตเดฒ

เดเด• เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดค เดคเดคเตเดตเด‚. เดคเต‹เดจเตเดจเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดฒเตเดฒ เดเด• เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดค เดคเดคเตเดตเด‚, เด’เดฑเตเดฑ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดคเตเดคเดฟเดจเตเดฑเต† เดคเดคเตเดตเด‚ เดŽเดจเตเดจเตเด‚ เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต,
เดฏเต‚เดฃเดฟเดซเต‹เด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเดŸเต† เดคเดคเตเดตเด‚ - เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดตเดณเดฐเต† เดตเดดเตเดตเดดเตเดชเตเดชเตเดณเตเดณ เด’เดฐเต เดตเตเดฏเด•เตเดคเดฟ, เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตผ เด…เดญเดฟเดฎเตเด–เดคเตเดคเดฟเตฝ เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดชเดฐเดฟเดญเตเดฐเดพเดจเตเดคเดฟเดฏเตเดณเตเดณ เดšเต‹เดฆเตเดฏเด‚.

เดˆ เดคเดคเตเดคเตเดตเดตเตเดฎเดพเดฏเดฟ เดŽเดจเตเดฑเต† เด†เดฆเตเดฏเดคเตเดคเต† เด—เตเดฐเตเดคเดฐเดฎเดพเดฏ เดชเดฐเดฟเดšเดฏเด‚ เดจเดŸเดจเตเดจเดคเต เด†เดฆเตเดฏ เดตเตผเดทเดคเตเดคเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเดฒเดพเดฃเต, เด•เตเดŸเตเดŸเดฟเด•เดณเตเด‚ เดชเดšเตเดšเดฏเตเด‚ เด‰เดณเตเดณเดตเดฐเต† เดฒเดพเตผเดตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเด•เดณเดพเด•เตเด•เดพเตป เด•เดพเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดชเต‹เดฏเดชเตเดชเต‹เตพ - เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเด•เตพ.

เด•เดพเดŸเตเดŸเดฟเตฝ, เดžเด™เตเด™เดณเต† 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. เดŽเดธเตเด†เตผเดชเดฟเดฏเตเดŸเต† เดจเดฟเตผเดตเตเดตเดšเดจเด‚

  1. เด˜เดŸเด•เด™เตเด™เตพ เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เตเด•, เด…เด™เตเด™เดจเต† เด…เดต เด“เดฐเต‹เดจเตเดจเตเด‚ เด’เดฐเต เด•เดพเดฐเตเดฏเดคเตเดคเดฟเดจเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเด•เดณเดพเดฃเต.
  2. เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ เดŽเดจเตเดจเดคเต "เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเดณเตเดณ เด•เดพเดฐเดฃเด‚" เด†เดฃเต. เด…เดคเดพเดฏเดคเต, เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฏเตเด•เตเดคเดฟเดฏเตเดŸเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เด“เดฐเต‹ เด˜เดŸเด•เดคเตเดคเดฟเดจเตเด‚ เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเต เด’เดฐเต เด•เดพเดฐเดฃเด‚ เดฎเดพเดคเตเดฐเดฎเต‡เดฏเตเดณเตเดณเต‚.
  3. เดฌเดฟเดธเดฟเดจเดธเต เดฒเต‹เดœเดฟเด•เตเด•เดฟเตฝ เดธเดพเดงเตเดฏเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ. เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเดฃเด‚. เดธเดฎเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจ เด˜เดŸเด•เด™เตเด™เตพ เดธเดฎเต€เดชเดคเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เด”เดชเดšเดพเดฐเดฟเด•เดค 2. เด†เดตเดถเตเดฏเดฎเดพเดฏ เดธเตเดตเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดจ เดฎเดพเดจเดฆเดฃเตเดกเด‚.

SRP เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดคเดฟเดฏเดพเดฏ เดฎเดพเดจเดฆเดฃเตเดกเด™เตเด™เตพ เดžเดพเตป เด•เดฃเตเดŸเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดพเตฝ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดตเตเดฏเดตเดธเตเดฅเด•เตพ เด‰เดฃเตเดŸเต:

1) เดˆ เด•เตเดฒเดพเดธเต/เดฐเต€เดคเดฟ/เดฎเตŠเดกเตเดฏเต‚เตพ/เดธเต‡เดตเดจเด‚ เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เดธเตเดตเดฏเด‚ เดšเต‹เดฆเดฟเด•เตเด•เตเด•. เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดจเดฟเตผเดตเดšเดจเดคเตเดคเดฟเตฝ เด‰เดคเตเดคเดฐเด‚ เดจเตฝเด•เดฃเด‚. ( เดจเดจเตเดฆเดฟ เดฌเตเดฐเตˆเดฑเตเดฑเต‹เดฑเดฟ )

เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เตพ

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดšเดฟเดฒเดชเตเดชเต‹เตพ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดจเดฟเตผเดตเดšเดจเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต

2) เด’เดฐเต เดฌเด—เต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต‹ เดชเตเดคเดฟเดฏ เดซเต€เดšเตเดšเตผ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต‹ เด•เตเดฑเดžเตเดž เดŽเดฃเตเดฃเด‚ เดซเดฏเดฒเตเด•เตพ/เด•เตเดฒเดพเดธเตเด•เดณเต† เดฌเดพเดงเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏเดฟ - เด’เดจเตเดจเต.

เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เตพ

เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ (เด’เดฐเต เดซเต€เดšเตเดšเตผ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฌเด—เต) เด’เดฐเต เดซเดฏเดฒเดฟเตฝ/เด•เตเดฒเดพเดธเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดจเต‹เด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเตเด‚ เดŽเดจเตเดคเต เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดฃเดฎเต†เดจเตเดจเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด…เดฑเดฟเดฏเดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต: เดฒเต‹เด—เดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดŸเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดตเดฟเดถเต‡เดทเดคเดฏเตเด•เตเด•เต เดฒเต‹เด—เตผ เดฎเดพเดคเตเดฐเด‚ เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดฌเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เด•เต‹เดกเตเด•เดณเดฟเดฒเต‚เดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.

เดฎเตเดฎเตเดชเดคเตเดคเต‡เดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เดฏเตเด เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดฎเดฑเตเดฑเตŠเดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚. 10 เดตเตเดฏเดคเตเดฏเดธเตเดค เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเตเด‚ 15 เดตเตเดฏเดคเตเดฏเดธเตเดค เด•เตบเดตเต†เตผเดŸเตเดŸเดฑเตเด•เดณเตเด‚ เดšเต‡เตผเด•เตเด•เดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เดชเตเดฐเต‡เดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด…เดคเต เด…เดฎเดฟเดคเดฎเดพเดฏเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต.

3) เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดฒเดฏเดจ เดตเตˆเดฐเตเดฆเตเดงเตเดฏเดคเตเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค, เด…เดคเดพเดฏเดคเต, เด’เดฐเต‡ เดซเดฏเตฝ/เด•เตเดฒเดพเดธเต เด’เดฐเต‡ เดธเดฎเดฏเด‚ เดจเดฟเดฐเดตเดงเดฟ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดฎเดพเดฑเตเดฑเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดตเดณเดฐเต† เด•เตเดฑเดตเดพเดฃเต.

เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เตพ

โ€œเดฎเต‡เดถเดฏเตเดŸเต† เด…เดŸเดฟเดฏเดฟเตฝ เดตเต‹เดกเตเด• เด’เดดเดฟเด•เตเด•เตเด•โ€ เดŽเดจเตเดจ เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดšเต‡เตผเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เดฒเต‹เด—เดฑเดฟเดจเต†เดฏเตเด‚ เดฎเดฆเตเดฏเดชเดพเดจเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เด’เดดเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต† เดฌเดพเดงเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด™เตเด™เตพ เดตเดณเดžเตเดžเดคเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‡เดคเต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดˆ เด•เดฃเด•เตเด•เต เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดฃเด‚.

4) เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฒเต‹เดœเดฟเด•เต (เด’เดฐเต เดกเดตเดฒเดชเตเดชเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดฎเดพเดจเต‡เดœเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต‹) เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดšเต‹เดฆเตเดฏเด‚ เดšเต‹เดฆเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เด•เตผเดถเดจเดฎเดพเดฏเดฟ เด’เดฐเต เด•เตเดฒเดพเดธเต/เดซเดฏเดฒเดฟเตฝ เดชเต‹เดฏเดฟ เด…เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเต‡ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เต‚.

เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เตพ

เดซเต€เดšเตเดšเดฑเตเด•เดณเตเด‚ เดจเดฟเดฏเดฎเด™เตเด™เดณเตเด‚ เด…เตฝเด—เดฐเดฟเดคเด™เตเด™เดณเตเด‚ เด’เดคเตเด•เตเด•เดฎเตเดณเตเดณเดตเดฏเดพเดฃเต, เด“เดฐเต‹เดจเตเดจเตเด‚ เด’เดฐเดฟเดŸเดคเตเดคเต, เด•เต‹เดกเต เดธเตโ€Œเดชเต†เดฏเตโ€ŒเดธเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดซเตเดฒเดพเด—เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดšเดฟเดคเดฑเดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

5) เดจเดพเดฎเด•เดฐเดฃเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต.

เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เตพ

เดžเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดพเดธเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฐเต€เดคเดฟ เด’เดฐเต เด•เดพเดฐเตเดฏเดคเตเดคเดฟเดจเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฃเต, เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ เด…เดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเดฟเตฝ เดชเตเดฐเดคเดฟเดซเดฒเดฟเด•เตเด•เตเดจเตเดจเต

AllManagersManagerService - เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เด’เดฐเต เดฆเตˆเดต เด•เตเดฒเดพเดธเต
เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเต - เด’เดฐเตเดชเด•เตเดทเต‡ เด‡เดฒเตเดฒ

เด”เดชเดšเดพเดฐเดฟเด•เดค 3. เด“เด•เตเด•เดพเด‚-เดซเดธเตเดฑเตเดฑเต เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเต เดฎเต†เดคเตเดคเดกเต‹เดณเดœเดฟ.

เดฐเต‚เดชเด•เตฝเดชเตเดชเดจเดฏเตเดŸเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เด•เตเดฐเด™เตเด™เตป เดฎเดจเตเดทเตเดฏเดจเต เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ, เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเตเด‚ เด…เดจเตเดญเดตเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เด’เดฐเต เดคเต†เดฑเตเดฑเต เดตเดฐเตเดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเต€เดคเดฟเด•เดณเดฟเตฝ เดคเต†เดฑเตเดฑเตเด•เตพ เดตเดฐเตเดคเตเดคเดพเด‚:

  • เดตเตเดฏเดคเตเดฏเดธเตเดค เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด™เตเด™เตพ เดฒเดฏเดฟเดชเตเดชเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเตเด•เตพ เดตเดณเดฐเต† เดตเดฒเตเดคเดพเด•เตเด•เตเด•
  • เด’เดฐเตŠเดฑเตเดฑ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดคเตเดคเต† เดชเดฒ เดคเดฐเด™เตเด™เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเดšเตเดšเต เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•
  • เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดคเตเดคเดฟเดจเตเดฑเต† เด…เดคเดฟเดฐเตเด•เตพ เดคเต†เดฑเตเดฑเดพเดฏเดฟ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเด•

เดจเดฟเดฏเดฎเด‚ เด“เตผเดคเตเดคเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต: "เด’เดฐเต เดตเดฒเดฟเดฏ เดคเต†เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดฑเดชเตเดชเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดตเดฟเดญเดœเดฟเด•เตเด•เดฐเตเดคเต." เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เตเดฒเดพเดธเดฟเตฝ เดฐเดฃเตเดŸเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดตเตเดจเตเดจเดคเต‡เดฏเตเดณเตเดณเต‚, เด•เต‚เดŸเดพเดคเต† เด•เตเดฒเดฏเดจเตเดฑเต เด•เต‹เดกเดฟเดฒเต† เดเดฑเตเดฑเดตเตเด‚ เดšเต†เดฑเดฟเดฏ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเต‹เดŸเต† เดฐเดฃเตเดŸเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดพเด‚. เดชเดฒ เดซเดฏเดฒเตเด•เดณเดฟเดฒเตเด‚ เดธเดจเตเดฆเตผเดญเด‚ เดตเตเดฏเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฒเตเด‚ เด•เตเดฒเดฏเดจเตเดฑเต เด•เต‹เดกเดฟเตฝ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเดŸเต† เด…เดญเดพเดตเดตเตเด‚ เด•เดพเดฐเดฃเด‚ เด—เตเดฒเดพเดธเต เด•เดทเตเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เด—เตเดฒเดพเดธเต เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด•เต‚เดŸเตเดคเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต.

เด’เดฐเต เดฆเดฟเดตเดธเด‚ เดตเดฟเดณเดฟเด•เตเด•เดพเตป เดธเดฎเดฏเดฎเดพเดฏเดฟ

SRP-เดฏเตเดŸเต† เดตเตเดฏเดพเดชเตเดคเดฟ OOP, SOLID เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เด’เดคเตเด™เตเด™เตเดจเตเดจเดฟเดฒเตเดฒ. เดฐเต€เดคเดฟเด•เตพ, เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ, เด•เตเดฒเดพเดธเตเด•เตพ, เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ, เดฎเตˆเด•เตเดฐเต‹ เดธเตผเดตเต€เดธเตเด•เตพ, เดธเต‡เดตเดจเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เด‡เดคเต เดฌเดพเดงเด•เดฎเดพเดฃเต. "figax-figax-and-prod", "rocket-science" เดตเดฟเด•เดธเดจเด‚ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เด‡เดคเต เดฌเดพเดงเด•เดฎเดพเดฃเต, เดฒเต‹เด•เดคเตเดคเต† เดŽเดฒเตเดฒเดพเดฏเดฟเดŸเดคเตเดคเตเด‚ เด…เตฝเดชเตเดชเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดŸเดคเดพเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด‡เดคเต เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพ เดŽเดžเตเดšเดฟเดจเต€เดฏเดฑเดฟเด‚เด—เตเด•เดณเตเดŸเต†เดฏเตเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดคเดคเตเดตเดฎเดพเดฃเต. เดฎเต†เด•เตเด•เดพเดจเดฟเด•เตเด•เตฝ เดŽเดžเตเดšเดฟเดจเต€เดฏเดฑเดฟเด‚เด—เต, เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เตพ, เดŽเดฒเตเดฒเดพ เดธเด™เตเด•เต€เตผเดฃเตเดฃ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เดณเตเด‚ เด˜เดŸเด•เด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด•เต‚เดŸเดพเดคเต† "เด…เดฃเตเดŸเตผ เดซเตเดฐเดพเด—เตเดฎเต†เดจเตเดฑเต‡เดทเตป" เดกเดฟเดธเตˆเดจเตผเดฎเดพเตผเด•เตเด•เต เดตเดดเด•เตเด•เด‚ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, "เด“เดตเตผ เดซเตเดฐเดพเด—เตเดฎเต†เดจเตเดฑเต‡เดทเตป" เดกเดฟเดธเตˆเดจเตผเดฎเดพเดฐเตเดŸเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดค เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เดคเต†เดฑเตเดฑเดพเดฏ เด…เดคเดฟเดฐเตเด•เตพ เด…เดตเตผเด•เตเด•เต เดฏเตเด•เตเดคเดฟเดฏเตเด‚ เดฎเดจเดธเตเดธเดฎเดพเดงเดพเดจเดตเตเด‚ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต.

เดเด• เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดค เดคเดคเตเดตเด‚. เดคเต‹เดจเตเดจเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดฒเตเดฒ

SRP เดชเตเดฐเด•เตƒเดคเดฟเดฏเดพเตฝ เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเดšเตเดšเดคเดฒเตเดฒ, เด•เตƒเดคเตเดฏเดฎเดพเดฏ เดถเดพเดธเตเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดฒเตเดฒ. เด‡เดคเต เดจเดฎเตเดฎเตเดŸเต† เดœเต€เดตเดถเดพเดธเตเดคเตเดฐเดชเดฐเดตเตเด‚ เดฎเดพเดจเดธเดฟเด•เดตเตเดฎเดพเดฏ เดชเดฐเดฟเดฎเดฟเดคเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเด•เดŸเด•เตเด•เตเดจเตเดจเต.เด•เตเดฐเด™เตเด™เตป-เดฎเดจเตเดทเตเดฏเดจเตเดฑเต† เดคเดฒเดšเตเดšเต‹เดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เดณเต† เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดฎเตเดณเตเดณ เด’เดฐเต เดฎเดพเตผเด—เดฎเดพเดฃเดฟเดคเต. เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดŽเด™เตเด™เดจเต† เดตเดฟเด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เด…เดฆเตเดฆเต‡เดนเด‚ เดจเดฎเตเดฎเต‹เดŸเต เดชเดฑเดฏเตเดจเตเดจเต. เดฏเดฅเดพเตผเดคเตเดฅ เดฐเต‚เดชเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเต เดจเตเดฏเดพเดฏเดฎเดพเดฏ เดคเตเด• เดŸเต†เดฒเดฟเดชเดคเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดˆ เดฒเต‡เด–เดจเด‚ เดšเดฟเดฒ เดชเตเด•เดฎเดฑเด•เตพ เดฎเดพเดฏเตโ€Œเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•