ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคึผืจื™ื ืฆื™ืคึผ. ื ื™ื˜ ื•ื•ื™ ืคึผืฉื•ื˜ ื•ื•ื™ ืขืก ืžื™ื™ื ื˜

ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคึผืจื™ื ืฆื™ืคึผ. ื ื™ื˜ ื•ื•ื™ ืคึผืฉื•ื˜ ื•ื•ื™ ืขืก ืžื™ื™ื ื˜ ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคึผืจื™ื ืฆื™ืคึผ, ืื•ื™ืš ื‘ืืงืื ื˜ ื•ื•ื™ ื“ืขืจ ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜,
ืึทืงืึท ื“ืขืจ ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ืžื•ื ื“ื™ืจ ื•ื•ืขืจื™ืึทื‘ื™ืœื™ื˜ื™ - ืึท ื’ืึธืจ ื’ืœื™ื˜ืฉื™ืง ื‘ืึธื›ืขืจ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืื•ืŸ ืึทื–ืึท ืึท ื ืขืจื•ื•ืขื– ืงืฉื™ื ืื™ืŸ ืึท ืคึผืจืึธื’ืจืึทืžื™ืกื˜ ืื™ื ื˜ืขืจื•ื•ื™ื•.

ืžื™ื™ึทืŸ ืขืจืฉื˜ืขืจ ืขืจื ืกื˜ ื‘ืึทืงืึทื ื˜ืขืจ ืžื™ื˜ ื“ืขื ืคึผืจื™ื ืฆื™ืคึผ ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืขืจืฉื˜ืขืจ ื™ืึธืจ, ื•ื•ืขืŸ ื“ื™ ื™ื•ื ื’ ืื•ืŸ ื’ืจื™ืŸ ื–ืขื ืขืŸ ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื“ื™ ื•ื•ืึทืœื“ ืฆื• ืžืึทื›ืŸ ืกื˜ื•ื“ืขื ื˜ืŸ ืคื•ืŸ ืœืึทืจื•ื•ื™ - ืคืึทืงื˜ื™ืฉ ืกื˜ื•ื“ืขื ื˜ืŸ.

ืื™ ืŸ ืฐืืœ ื“ ื–ืฒื ืข ืŸ ืžื™ ืจ ืืฒื ื’ืขื˜ืฒืœ ื˜ ื’ืขืฐืืจ ืŸ ืื™ ืŸ ื’ืจื•ืค ืข ืคื• ืŸ ื™ืขื“ ืŸ 8 โ€” 9 ืคืขืจื–ืืŸ , ืื• ืŸ ืžื™ ืจ ื”ืื‘ ืŸ ื’ืขื”ื ื˜ ื ืคืืจืžืขืกื˜ื•ื  ื’ โ€” ืฐืขืœื› ืข ื’ืจื•ืคืข ืก ืคืœืขื’ ื˜ ื“ ื™ ืฉื ืขืœืกื˜ ืข ื˜ืจื™ื ืงืข ืŸ ื ืคืœืืฉ ืข ืฐืื“ืงืข , ื‘ืชื ืื™ , ื ื– ื“ืข ืจ ืขืจืฉื˜ืข ืจ ืคื• ืŸ ื“ืข ืจ ื’ืจื•ืค ืข ื’ืฒ ื˜ ื ืฐืื“ืงืข , ื“ืข ืจ ืฆืฐืฒื˜ืข ืจ ื˜ืจื™ื ืงื˜ , ืื•ืŸ ื“ืขืจ ื“ืจื™ื˜ืขืจ ื”ืึธื˜ ืึท ืคึฟืึทืจื‘ืฒึทืกืŸ. ื“ืขืจ ืึทืคึผืึทืจืึทื˜ ื•ื•ืึธืก ื”ืื˜ ื’ืขืขื ื“ื™ืงื˜ ื–ื™ื™ืŸ ืึธืคึผืขืจืึทืฆื™ืข ื‘ืื•ื•ืขื’ื˜ ืฆื• ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืจื™ื™ ืคื•ืŸ ื“ื™ ื’ืจื•ืคึผืข.

ื“ืขืจ ืคืึทืœ ื•ื•ืขืŸ ื“ื™ ืจื™ื™ ื’ืจื™ื™ืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืงื™ื™ืคืœ ืคื•ืŸ ื“ืจื™ื™ ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ื’ื•ื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ SRP.

ื“ืขืคึฟื™ื ื™ืฆื™ืข 1. ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜.

ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ื“ืขืคึฟื™ื ื™ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคึผืจื™ื ืฆื™ืคึผ (SRP) ื–ืื’ื˜ ืึทื– ื™ืขื“ืขืจ ืขื ื˜ื™ื˜ื™ ื”ืื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืื•ืŸ ืกื™ื‘ื” ืคึฟืึทืจ ืขืงื–ื™ืกื˜ืขื ืฅ, ืื•ืŸ ืขืก ื”ืื˜ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜.

ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ื›ื™ื™ืคืขืฅ "ื“ืจื™ื ืงืขืจ" (ื˜ื™ืคึผืœืขืจ).
ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ SRP ืคึผืจื™ื ืฆื™ืคึผ, ืžื™ืจ ื•ื•ืขืœืŸ ื˜ื™ื™ืœืŸ ื“ื™ ืจื™ืกืคึผืึทื ืกืึทื‘ื™ืœืึทื˜ื™ื– ืื™ืŸ ื“ืจื™ื™ึท:

  • ืื™ื™ื ืขืจ ื’ื™ืกื˜ (PourOperation)
  • ืื™ื™ื ืขืจ ื˜ืจื™ื ืงื˜ (DrinkUp Operation)
  • ืื™ื™ื ืขืจ ื”ืื˜ ื ืคืืจื‘ืื ื’ (TakeBiteOperation)

ื™ืขื“ืขืจ ืคื•ืŸ ื“ื™ ืคึผืึทืจื˜ื™ืกืึทืคึผืึทื ืฅ ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืื™ื™ืŸ ืงืึธืžืคึผืึธื ืขื ื˜ ืคื•ืŸ ื“ืขื ืคึผืจืึธืฆืขืก, ื•ื•ืึธืก ืื™ื–, ื”ืื˜ ืื™ื™ืŸ ืึทื˜ืึธืžื™ืฉืข ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ - ืฆื• ื˜ืจื™ื ืงืขืŸ, ื’ื™ืกืŸ ืึธื“ืขืจ ืคึฟืึทืจื‘ื™ื™ึทืกืŸ.

ื“ื™ ื˜ืจื™ื ืงื˜ ืœืึธืš, ืื™ืŸ ืงืขืจ, ืื™ื– ืึท ืคืึทืกืึทื“ ืคึฟืึทืจ ื“ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ื–:

ัlass Tippler {
    //...
    void Act(){
        _pourOperation.Do() // ะฝะฐะปะธั‚ัŒ
        _drinkUpOperation.Do() // ะฒั‹ะฟะธั‚ัŒ
        _takeBiteOperation.Do() // ะทะฐะบัƒัะธั‚ัŒ
    }
}

ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคึผืจื™ื ืฆื™ืคึผ. ื ื™ื˜ ื•ื•ื™ ืคึผืฉื•ื˜ ื•ื•ื™ ืขืก ืžื™ื™ื ื˜

ืคืืจื•ื•ืืก?

ื“ืขืจ ืžืขื ื˜ืฉ ืคึผืจืึธื’ืจืึทืžื™ืกื˜ ืฉืจื™ื™ื‘ื˜ ืงืึธื“ ืคึฟืึทืจ ื“ืขื ื ืึธื›ืžืึทื›ืŸ-ืžืขื ื˜ืฉ, ืื•ืŸ ื“ืขืจ ื ืึธื›ืžืึทื›ืŸ-ืžืขื ื˜ืฉ ืื™ื– ื™ื ืึทื˜ืขื ื˜ื™ื•ื•, ื ืึทืจื™ืฉ ืื•ืŸ ืฉื˜ืขื ื“ื™ืง ืื™ืŸ ืึท ื™ื™ึทืœืŸ. ืขืจ ืงืขื ืขืŸ ื”ืึทืœื˜ืŸ ืื•ืŸ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืขื’ืŸ 3-7 ื˜ืขืจืžื™ื ืขืŸ ืื™ืŸ ืื™ื™ืŸ ืฆื™ื™ื˜.
ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืึท ืฉื™ื›ื•ืจ, ืขืก ื–ืขื ืขืŸ ื“ืจื™ื™ึท ืคื•ืŸ ื“ื™ ื˜ืขืจืžื™ื ืขืŸ. ืึธื‘ืขืจ, ืื•ื™ื‘ ืžื™ืจ ืฉืจื™ื™ึทื‘ืŸ ื“ืขื ืงืึธื“ ืžื™ื˜ ืื™ื™ืŸ ื‘ืœืึทื˜, ืขืก ื•ื•ืขื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ื”ืขื ื˜, ื‘ืจื™ืœืŸ, ืคื™ื™ืฅ ืื•ืŸ ืกืึธืฃ ืึทืจื’ื•ืžืขื ื˜ืŸ ื•ื•ืขื’ืŸ ืคึผืึธืœื™ื˜ื™ืง. ืื•ืŸ ื“ืึธืก ืึทืœืฅ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ื“ืขื ื’ื•ืฃ ืคื•ืŸ ืื™ื™ืŸ ืื•ืคึฟืŸ. ืื™ืš ื‘ื™ืŸ ื–ื™ื›ืขืจ ืึทื– ืื™ืจ ื”ืึธื˜ ื’ืขื–ืขืŸ ืึทื–ืึท ืงืึธื“ ืื™ืŸ ื“ื™ื™ืŸ ืคื™ืจ. ื ื™ื˜ ื“ื™ ืžืขืจืกื˜ ืžืขื ื˜ืฉืœืขืš ืคึผืจืึธื‘ืข ืคึฟืึทืจ ื“ื™ ืคึผืกื™ื›ื™ืง.

ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ื“ืขืจ ื ืึธื›ืžืึทื›ืŸ ืžืขื ื˜ืฉ ืื™ื– ื“ื™ื–ื™ื™ื ื“ ืฆื• ืกื™ืžื•ืœื™ืจืŸ ืคืึทืงื˜ื™ืฉ ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ ื–ื™ื™ืŸ ืงืึธืคึผ. ืื™ ืŸ ื–ืฒ ืŸ ืคืื ื˜ืื–ื™ืข , ืงื ืŸ ืข ืจ ื– ืฒ ืฆื•ื–ืืžืขื ืฉื˜ื•ืคืŸ , ืฆื•ื–ืืžืขื ืฉื˜ืขืœ ืŸ ืคื• ืŸ ื– ืฒ ื ืฒ ืข ื—ืคืฆื™ื , ืื• ืŸ ื– ืฒ ืื•ื™ืค ืŸ ื–ืขืœื‘ื™ืง ืŸ ืื•ื™ื ึพ ืฆืขืฉื ื™ื˜ ืŸ . ื™ืžืึทื“ื–ืฉืึทืŸ ืึทืŸ ืึทืœื˜ ืžืึธื“ืขืœ ืžืึทืฉื™ืŸ. ืื™ืŸ ื“ื™ื™ืŸ ืคืึทื ื˜ืึทื–ื™ืข, ืื™ืจ ืงืขื ืขืŸ ืขืคืขื ืขืŸ ื“ื™ ื˜ื™ืจ, ื•ื ืกืงืจืขื•ื• ื“ื™ ื˜ื™ืจ ื˜ืจื™ื ืื•ืŸ ื–ืขืŸ ื“ืึธืจื˜ ื“ื™ ืคึฟืขื ืฆื˜ืขืจ ื”ื™ื™ื‘ืŸ ืžืขืงืึทื ื™ื–ืึทืžื–, ืื™ืŸ ื•ื•ืึธืก ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ื™ืจื–. ืึธื‘ืขืจ ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ื–ืขืŸ ืึทืœืข ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื“ื™ ืžืึทืฉื™ืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืื™ืŸ ืื™ื™ืŸ "ืœื™ืกื˜ื™ื ื’". ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ ื“ืขืจ "ืžืึทืœืคึผืข ืžืขื ื˜ืฉ" ืงืขืŸ ื ื™ืฉื˜.

ื“ืขืจื™ื‘ืขืจ, ืžืขื ื˜ืฉ ืคึผืจืึธื•ื’ืจืึทืžืขืจื– ืฆืขืœื™ื™ื’ื  ืงืึธืžืคึผืœืขืงืก ืžืขืงืึทื ื™ื–ืึทืžื– ืื™ืŸ ืึท ืกื›ื•ื ืคื•ืŸ ื•ื•ื™ื™ื ื™ืงืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ืื•ืŸ ืืจื‘ืขื˜ืŸ ืขืœืขืžืขื ื˜ืŸ. ืึธื‘ืขืจ, ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื™ืงืึทืžืคึผืึธื•ื–ื“ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขื’ืŸ: ืื™ืŸ ืคื™ืœืข ืึทืœื˜ ืงืึทืจืก, ื“ื™ ืœื•ืคื˜ ื“ืึทืงื˜ ื’ื™ื™ื˜ ืื™ืŸ ื“ื™ ื˜ื™ืจ, ืื•ืŸ ืื™ืŸ ืžืึธื“ืขืจืŸ ืงืึทืจืก, ืึท ื“ื•ืจื›ืคืึทืœ ืื™ืŸ ื“ื™ ืฉืœืึธืก ืขืœืขืงื˜ืจืึธื ื™ืง ืคึผืจื™ื•ื•ืขื ืฅ ื“ื™ ืžืึธื˜ืึธืจ ืคื•ืŸ ืกื˜ืึทืจื˜ื™ื ื’, ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืึท ืคึผืจืึธื‘ืœืขื ื‘ืขืฉืึทืก ืจื™ืคึผืขืจื–.

ืื™ืฆื˜, SRP ืื™ื– ืึท ืคึผืจื™ื ืฆื™ืคึผ ื•ื•ืึธืก ื“ืขืจืงืœืขืจื˜ ื•ื•ื™ ืฆื• ืฆืขืœื™ื™ื’ื , ื“ืึธืก ืื™ื–, ื•ื•ื• ืฆื• ืฆื™ืขืŸ ื“ื™ ื“ื™ื•ื•ื™ื™ื“ื™ื ื’ ืฉื•ืจื”.

ืขืจ ื–ืื’ื˜ ืึทื– ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืฆืขื˜ื™ื™ืœืŸ ืœื•ื™ื˜ ื“ืขื ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ืึธืคึผื˜ื™ื™ืœ ืคื•ืŸ "ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜", ื“ืึธืก ืื™ื– ืœื•ื™ื˜ ื“ื™ ื˜ืึทืกืงืก ืคื•ืŸ ื–ื™ื›ืขืจ ืึทื‘ื“ื–ืฉืขืงืก.

ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคึผืจื™ื ืฆื™ืคึผ. ื ื™ื˜ ื•ื•ื™ ืคึผืฉื•ื˜ ื•ื•ื™ ืขืก ืžื™ื™ื ื˜

ืœืึธืžื™ืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื˜ืจื™ื ืงื˜ ืื•ืŸ ื“ื™ ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืึทื– ื“ืขืจ ืžืึทืœืคึผืข ืžืขื ื˜ืฉ ื‘ืืงื•ืžื˜ ื‘ืขืฉืึทืก ื“ื™ืงืึทืžืคึผืึธื•ื–ื™ืฉืึทืŸ:

  • ื“ืขืจ ืงืึธื“ ืื™ื– ื’ืขื•ื•ืืจืŸ ื’ืึธืจ ืงืœืึธืจ ืื•ื™ืฃ ื™ืขื“ืขืจ ืžื“ืจื’ื”
  • ื“ืขืจ ืงืึธื“ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ ื“ื•ืจืš ืขื˜ืœืขื›ืข ืคึผืจืึธื•ื’ืจืึทืžืขืจื– ืื™ืŸ ืึทืžืึธืœ (ื™ืขื“ืขืจ ืฉืจื™ื™ื‘ื˜ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืขืœืขืžืขื ื˜)
  • ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ื˜ืขืกื˜ื™ื ื’ ืื™ื– ืกื™ืžืคึผืœืึทืคื™ื™ื“ - ื“ื™ ืกื™ืžืคึผืœืขืจ ื“ื™ ืขืœืขืžืขื ื˜, ื“ื™ ื’ืจื™ื ื’ืขืจ ืขืก ืื™ื– ืฆื• ืคึผืจื•ื‘ื™ืจืŸ
  • ื“ื™ ืงืึทืžืคึผืึทื–ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืงืึธื“ ืื™ื– - ืื™ืจ ืงืขื ืขืŸ ืคืึทืจื‘ื™ื™ึทื˜ืŸ DrinkUp Operation ืฆื• ืืŸ ืืคืขืจืืฆื™ืข ืื™ืŸ ื•ื•ืขืœื›ืŸ ื ืฉื™ื›ื•ืจ ื’ื™ืกื˜ ื ืคืœื™ืกื™ืงื™ื™ื˜ ืื•ื ื˜ืขืจืŸ ื˜ื™ืฉ. ืึธื“ืขืจ ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ ื’ื™ืกืŸ ืึธืคึผืขืจืึทืฆื™ืข ืžื™ื˜ ืึท ืึธืคึผืขืจืึทืฆื™ืข ืื™ืŸ ื•ื•ืึธืก ืื™ืจ ืžื™ืฉืŸ ื•ื•ื™ื™ึทืŸ ืื•ืŸ ื•ื•ืึทืกืขืจ ืึธื“ืขืจ ืžืึทืฉืงืข ืื•ืŸ ื‘ื™ืจ. ื“ืขืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื’ืขืฉืขืคื˜ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ, ืื™ืจ ืงืขื ืขืŸ ื˜ืึธืŸ ืึทืœืฅ ืึธืŸ ืจื™ืจื ื“ื™ืง ื“ืขื ืื•ืคึฟืŸ ืงืึธื“ ื˜ื™ืคึผืœืขืจ.ืืงื˜.
  • ืคึฟื•ืŸ ื“ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื™ืจ ืงืขื ืขืŸ ืคืึทืจืœื™ื™ื’ืŸ ื“ื™ ืคืจืขืกืขืจ (ื‘ืœื•ื™ื– ื ื™ืฆืŸ TakeBitOperation), ืึทืœืงืึธื”ืึธืœื™ืงืขืจ (ื ื™ืฆืŸ ื‘ืœื•ื™ื– DrinkUp Operation ื’ืœื™ื™ืš ืคื•ืŸ ื“ื™ ืคืœืึทืฉ) ืื•ืŸ ื˜ืจืขืคืŸ ืคื™ืœืข ืื ื“ืขืจืข ื’ืขืฉืขืคื˜ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ.

(ืึธื”, ืขืก ืžื™ื™ื ื˜ ืึทื– ื“ืึธืก ืื™ื– ืฉื•ื™ืŸ ืึทืŸ 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}");
    }
}

ื“ื•ืจืš ืขื ืงืึทืคึผืกืึทืœื™ื ื’ ืขืก ืื™ืŸ PourOperation, ืžื™ืจ ืึทืงื˜ืึทื“ ื•ื•ื™ื™ื–ืœื™ ืคื•ืŸ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืื•ืŸ ืขื ืงืึทืคึผืกื•ืœืึทื˜ื™ืึธืŸ, ืึธื‘ืขืจ ืื™ืฆื˜ ืžื™ืจ ื–ืขื ืขืŸ ืฆืขืžื™ืฉื˜ ืžื™ื˜ ื“ืขื ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ื•ื•ืขืจื™ืึทื‘ื™ืœื™ื˜ื™. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ื–ื™ืš, ื•ื•ืึธืก ืงืขื ืขืŸ ื˜ื•ื™ืฉืŸ, ื“ื™ ืœืึธื’ื™ื ื’ ื–ื™ืš ืื•ื™ืš ื•ื•ืขืจื˜ ื˜ืฉื™ื™ื ื“ื–ืฉืึทื‘ืึทืœ. ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ื‘ืึทื–ื•ื ื“ืขืจ ืื•ืŸ ืฉืึทืคึฟืŸ ืึท ืกืคึผืขืฆื™ืขืœ ืœืึทื’ืขืจ ืคึฟืึทืจ ื“ื™ ืคึผืึธืจื™ื ื’ ืึธืคึผืขืจืึทืฆื™ืข:

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)
        }
    }
}

ื“ืขืจ ืžื™ืื•ืกืขืจ ืœื™ื™ืขื ืขืจ ื•ื•ืขื˜ ื“ืืก ื‘ืืžืขืจืงืŸ LogAfter, LogBefore ะธ ืื•ื™ืฃ ื˜ืขื•ืช ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื˜ืฉื™ื™ื ื“ื–ืฉื“ ื™ื ื“ื™ื•ื•ื™ื“ื–ืฉื•ืึทืœื™, ืื•ืŸ, ื“ื•ืจืš ืึทื ืึทืœืึทื“ื–ืฉื™ ืžื™ื˜ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืกื˜ืขืคึผืก, ื•ื•ืขื˜ ืžืึทื›ืŸ ื“ืจื™ื™ ืงืœืืกืŸ: 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 ืžืขืจ ื’ืขืฉืขืคื˜ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ื“ืขืจ ืจืฉื™ืžื” ืžื™ื˜ ืฉืจืขืงืœืขืš ืงืึทื ืขืงื˜ื™ื•ื•ื™ื˜ื™. ื›ึผืžืขื˜ ืึทืœืขืžืขืŸ ื“ืืจืฃ ื“ื™ ื—ืฉื‘ื•ืŸ ื›ื™ื™ืคืขืฅ. ื“ื™ ืคื•ื ื˜ ืฉื™ื™ึทืŸ ืื•ืŸ ืงืœื™ืขื ื˜ ื ืึธืžืขืŸ ื–ืขื ืขืŸ ื“ืืจืฃ ืื™ืŸ ื”ืึทืœื‘ ืคื•ืŸ ื“ื™ ืงืึทืœืœืก.

ื ืึธืš ืึท ืฉืขื” ืคื•ืŸ ืจืขืคืึทืงื˜ืึธืจื™ื ื’, ืžื™ืจ ื–ืขื ืขืŸ ื‘ื™ื›ื•ืœืช ืฆื• ืฆืขื˜ื™ื™ืœืŸ ื“ื™ ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืงืึธื“ ืื•ืŸ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื ื•ืึทื ืกื™ื– ืคื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืึท ื—ืฉื‘ื•ืŸ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืžืขื˜ื”ืึธื“ืก / ืงืœืืกืŸ. ื“ืขืจ ื’ืึธื˜ ืื•ืคึฟืŸ ื’ืขืžืื›ื˜ ืขืก ื’ืจื™ื ื’ืขืจ, ืึธื‘ืขืจ ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ 100 ืฉื•ืจื•ืช ืคื•ืŸ ืงืึธื“ ืœื™ื ืงืก ื•ื•ืึธืก ื ืึธืจ ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ื–ื™ื™ืŸ ืึทื ื˜ืึทื ื’ื’ืึทืœื“.

ื‘ืœื•ื™ื– ื ืึธืš ืึท ื‘ื™ืกืœ ื˜ืขื’ ืขืก ื’ืขื•ื•ืืจืŸ ืงืœืึธืจ ืึทื– ื“ื™ ืขืกืึทื ืก ืคื•ืŸ ื“ืขื "ืœื™ื™ื˜ื•ื•ื™ื™ื˜" ืื•ืคึฟืŸ ืื™ื– ืึท ื’ืขืฉืขืคื˜ ืึทืœื’ืขืจื™ื“ืึทื. ืื•ืŸ ืึทื– ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ ื˜ืขื›ื ื™ืฉ ืกืคึผืขืกืึทืคืึทืงื™ื™ืฉืึทื ื– ืื™ื– ื’ืึทื ืฅ ืงืึธืžืคึผืœื™ืฆื™ืจื˜. ืื•ืŸ ืขืก ืื™ื– ื“ืขืจ ืคึผืจื•ื•ื•ืŸ ืฆื• ื‘ืจืขื›ืŸ ื“ืขื ืื•ืคึฟืŸ ืื™ืŸ ื‘ืจืขืงืœืขืš ื•ื•ืึธืก ื•ื•ืขื˜ ืึธื ืจื™ืจืŸ ื“ื™ SRP, ืื•ืŸ ื ื™ืฉื˜ ื•ื•ื™ืฆืข ื•ื•ืขืจืกืึท.

ืคืึธืจืžืึทืœื™ื–ืึทื.

ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ืœืึธื–ืŸ ืื•ื ื“ื–ืขืจ ืฉื™ื›ื•ืจ ืึทืœื™ื™ืŸ. ื˜ืจื•ืงืŸ ื“ื™ื™ืŸ ื˜ืจืขืจืŸ - ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืืฉื˜ื™ืžื˜ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ืื™ื ืึทืžืึธืœ. ืื™ืฆื˜ ืœืึธื–ืŸ ืื•ื ื“ื– ืคืึธืจืžืึทืœื™ื– ื“ื™ ื•ื•ื™ืกืŸ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ.

ืคืึธืจืžืึทืœื™ื–ืึทื 1. ื“ืขืคึฟื™ื ื™ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืกืจืคึผ

  1. ื‘ืึทื–ื•ื ื“ืขืจ ื“ื™ ืขืœืขืžืขื ื˜ืŸ ืึทื–ื•ื™ ืึทื– ื™ืขื“ืขืจ ืคื•ืŸ ื–ื™ื™ ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืื™ื™ืŸ ื–ืึทืš.
  2. ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืฉื˜ื™ื™ื˜ ืคึฟืึทืจ "ืกื™ื‘ื” ืฆื• ื˜ื•ื™ืฉืŸ." ืึทื– ืื™ื–, ื™ืขื“ืขืจ ืขืœืขืžืขื ื˜ ื”ืื˜ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืกื™ื‘ื” ืคึฟืึทืจ ื˜ื•ื™ืฉืŸ, ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง.
  3. ืคึผืึธื˜ืขื ืฆื™ืขืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง. ืžื•ื–ืŸ ื–ื™ื™ืŸ ืœืึธื•ืงืึทืœื™ื™ื–ื“. ืขืœืขืžืขื ื˜ืŸ ื•ื•ืึธืก ื˜ื•ื™ืฉืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืกืœื™ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื ืึธืขื ื˜.

ืคืึธืจืžืึทืœื™ื–ืึทื 2. ื ื™ื™ื˜ื™ืง ื–ื™ืš-ืคึผืจื•ื‘ื™ืจืŸ ืงืจื™ื™ื˜ื™ืจื™ืึท.

ืื™ืš ื”ืื‘ ื ื™ืฉื˜ ื’ืขื–ืขืŸ ื’ืขื ื•ื’ ืงืจื™ื™ื˜ื™ืจื™ืึท ืคึฟืึทืจ ืคื•ืœืคื™ืœื™ื ื’ ื“ื™ SRP. ืื‘ืขืจ ืขืก ื–ืขื ืขืŸ ื ื™ื™ื˜ื™ืง ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ:

1) ืคืจืขื’ืŸ ื–ื™ืš ื•ื•ืึธืก ื“ืขื ืงืœืึทืก / ืื•ืคึฟืŸ / ืžืึธื“ื•ืœืข / ื“ื™ื ืกื˜ ื˜ื•ื˜. ืื™ืจ ืžื•ื–ืŸ ืขื ื˜ืคึฟืขืจืŸ ืขืก ืžื™ื˜ ืึท ืคึผืฉื•ื˜ ื“ืขืคึฟื™ื ื™ืฆื™ืข. ( ืื“ืื ืง ื‘ืจื™ื™ื˜ืึธืจื™ )

ื“ืขืจืงืœืขืจื•ื ื’ืขืŸ

ืึธื‘ืขืจ, ืžืืœ ืขืก ืื™ื– ื–ื™ื™ืขืจ ืฉื•ื•ืขืจ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืึท ืคึผืฉื•ื˜ ื“ืขืคึฟื™ื ื™ืฆื™ืข

2) ืคื™ืงืกื™ืจ ืึท ื–ืฉื•ืง ืึธื“ืขืจ ืึทื“ื™ื ื’ ืึท ื ื™ื™ึทืข ืฉื˜ืจื™ืš ืึทืคืขืงืฅ ืึท ืžื™ื ื™ืžื•ื ื ื•ืžืขืจ ืคื•ืŸ ื˜ืขืงืขืก / ืงืœืืกืŸ. ื™ื“ืขืึทืœืœื™ - ืื™ื™ื ืขืจ.

ื“ืขืจืงืœืขืจื•ื ื’ืขืŸ

ื–ื™ื ื˜ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ (ืคึฟืึทืจ ืึท ืฉื˜ืจื™ืš ืึธื“ืขืจ ื–ืฉื•ืง) ืื™ื– ืขื ืงืึทืคึผืกืึทืœื™ื™ื˜ื™ื“ ืื™ืŸ ืื™ื™ืŸ ื˜ืขืงืข / ืงืœืึทืก, ืื™ืจ ื•ื•ื™ืกืŸ ืคึผื•ื ืงื˜ ื•ื•ื• ืฆื• ืงื•ืงืŸ ืื•ืŸ ื•ื•ืึธืก ืฆื• ืจืขื“ืึทื’ื™ืจืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ: ื“ื™ ืฉื˜ืจื™ืš ืคื•ืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืœืึธื’ื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืขื˜ ื“ืึทืจืคืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื‘ืœื•ื™ื– ื“ื™ ืœืึทื’ืขืจ. ืขืก ืื™ื– ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืœื•ื™ืคืŸ ื“ื•ืจืš ื“ื™ ืจืขืฉื˜ ืคื•ืŸ ื“ื™ ืงืึธื“.

ืืŸ ืื ื“ืขืจ ื‘ื™ื™ืฉืคึผื™ืœ ืื™ื– ืึทื“ื™ื ื’ ืึท ื ื™ื™ึทืข ื•ื™ ืงืึธื ื˜ืจืึธืœ, ืขื ืœืขืš ืฆื• ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืึธื ืขืก. ืื•ื™ื‘ ื“ืึธืก ืคืึธืจืกืขืก ืื™ืจ ืฆื• ืœื™ื™ื’ืŸ 10 ืคืึทืจืฉื™ื“ืขื ืข ืขื ื˜ื™ื˜ื™ื– ืื•ืŸ 15 ืคืึทืจืฉื™ื“ืขื ืข ืงืึทื ื•ื•ืขืจื˜ืขืจื–, ืขืก ืงื•ืงื˜ ื•ื•ื™ ืื™ืจ ืึธื•ื•ืขืจื“ืึธ ืขืก.

3) ืื•ื™ื‘ ืขื˜ืœืขื›ืข ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืคืึทืจืฉื™ื“ืขื ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜, ื“ื™ ืœื™ืงืขืœื™ื”ืึธืึธื“ ืคื•ืŸ ืึท ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืงืึธื ืคืœื™ืงื˜, ื“ืึธืก ืื™ื–, ื“ื™ ืœื™ืงืขืœื™ื”ืึธืึธื“ ืึทื– ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื˜ืขืงืข / ืงืœืึทืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืืจืขื ื“ืขืจื˜ ื“ื•ืจืš ืขื˜ืœืขื›ืข ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืื™ื– ืžื™ื ื™ืžืึทืœ.

ื“ืขืจืงืœืขืจื•ื ื’ืขืŸ

ืื•ื™ื‘, ื•ื•ืขืŸ ืึทื“ื™ื ื’ ืึท ื ื™ื™ึทืข ืึธืคึผืขืจืึทืฆื™ืข "ื’ื™ืกืŸ ืžืึทืฉืงืข ืื•ื ื˜ืขืจ ื“ื™ ื˜ื™ืฉ", ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื•ื™ืจืงืŸ ื“ื™ ืœืึทื’ืขืจ, ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื˜ืจื™ื ืงื˜ ืื•ืŸ ื’ื™ืกืŸ, ืขืก ืงื•ืงื˜ ื•ื•ื™ ื“ื™ ืจื™ืกืคึผืึทื ืกืึทื‘ื™ืœืึทื˜ื™ื– ื–ืขื ืขืŸ ืงืจื•ื ืฆืขื˜ื™ื™ืœื˜. ืคื•ืŸ ืงื•ืจืก, ื“ืึธืก ืื™ื– ื ื™ื˜ ืฉื˜ืขื ื“ื™ืง ืžืขื’ืœืขืš, ืึธื‘ืขืจ ืžื™ืจ ื–ืึธืœ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ืขื ืฆื™ืคืขืจ.

4) ื•ื•ืขืŸ ืžืขืŸ ืคืจืขื’ื˜ ื ืงืœืืจืขืจืข ืคืจืื’ืข ืื™ื‘ืขืจ ื‘ื™ื–ื ืขืก ืœืื’ื™ืง (ืคื•ืŸ ื ื“ืขื•ื•ืขืœืืคืขืจ ืื“ืขืจ ืคืืจื•ื•ืืœื˜ืขืจ), ื’ื™ื™ื˜ ืžืขืŸ ืฉื˜ืจืขื ื’ ืืจื™ื™ืŸ ืื™ืŸ ืื™ื™ืŸ ืงืœืืก/ื˜ืขืงืข ืื•ืŸ ื‘ืืงื•ืžื˜ ื ืืจ ืคื•ืŸ ื“ืืจื˜ ืื™ื ืคืืจืžืืฆื™ืข.

ื“ืขืจืงืœืขืจื•ื ื’ืขืŸ

ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ื›ึผืœืœื™ื ืึธื“ืขืจ ืึทืœื’ืขืจื™ื“ืึทืžื– ื–ืขื ืขืŸ ืงืึธืžืคึผืึทืงื˜ืœื™ ื’ืขืฉืจื™ื‘ืŸ, ื™ืขื“ืขืจ ืื™ืŸ ืื™ื™ืŸ ืึธืจื˜, ืื•ืŸ ื ื™ืฉื˜ ืฆืขื•ื•ืึธืจืคืŸ ืžื™ื˜ ืคืœืึทื’ืก ืื™ื‘ืขืจ ื“ื™ ืงืึธื“ ืคึผืœืึทืฅ.

5) ื“ื™ ื ืึธืžืขืŸ ืื™ื– ืงืœืึธืจ.

ื“ืขืจืงืœืขืจื•ื ื’ืขืŸ

ืื•ื ื“ื–ืขืจ ืงืœืึทืก ืึธื“ืขืจ ืื•ืคึฟืŸ ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืื™ื™ืŸ ื–ืึทืš, ืื•ืŸ ื“ื™ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืื™ื– ืฉืคื™ื’ืœื˜ ืื™ืŸ ื–ื™ื™ึทืŸ ื ืึธืžืขืŸ

AllManagersManagerService - ืจื•ื‘ึฟ ืžืกืชึผืžื ืึท ื’ืึธื˜ ืงืœืึทืก
LocalPayment - ืžื™ืกื˜ืึธืžืข ื ื™ืฉื˜

ืคืึธืจืžืึทืœื™ื–ืึทื 3. ืึธืงืงืึทื-ืขืจืฉื˜ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืžืขื˜ืึทื“ืึทืœืึทื“ื–ืฉื™.

ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืคึผืœืึทืŸ, ื“ืขืจ ืžืึทืœืคึผืข ืžืขื ื˜ืฉ ื˜ื•ื˜ ื ื™ืฉื˜ ื•ื•ื™ืกืŸ ืื•ืŸ ื˜ืึธืŸ ื ื™ื˜ ืคื™ืœืŸ ืึทืœืข ื“ื™ ืกืึทื˜ืึทืœื˜ื™ื– ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืœืขื ืื™ื– ืกืึทืœื•ื•ื“ ืื•ืŸ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ื’ืจื™ื™ึทื–. ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืžื™ืกื˜ื™ื™ืงืก ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขื’ืŸ:

  • ืžืึทื›ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืฆื• ื’ืจื•ื™ืก ื“ื•ืจืš ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคืึทืจืฉื™ื“ืขื ืข ืจื™ืกืคึผืึทื ืกืึทื‘ื™ืœืึทื˜ื™ื–
  • ืจืขืคืจืึทืžื™ื ื’ ื“ื•ืจืš ื“ื™ื•ื•ื™ื™ื“ื™ื ื’ ืึท ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืื™ืŸ ืคื™ืœืข ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ื™ืคึผืก
  • ื™ื ืงืขืจืขืงื˜ืœื™ ื“ืขืคื™ื ื™ืจืŸ ื“ื™ ื‘ืึทื•ื ื“ืจื™ื– ืคื•ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜

ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื’ืขื“ืขื ืงืขืŸ ื“ื™ ื”ืขืจืฉืŸ: "ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ืžืึทื›ืŸ ืึท ื’ืจื•ื™ืก ื’ืจื™ื™ึทื–," ืึธื“ืขืจ "ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ื ื™ืฉื˜ ื–ื™ื›ืขืจ, ื˜ืึธืŸ ื ื™ื˜ ืฉืคึผืึทืœื˜ืŸ ืขืก." ืื•ื™ื‘, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ื™ืŸ ืงืœืึทืก ื›ึผื•ืœืœ ืฆื•ื•ื™ื™ ืจื™ืกืคึผืึทื ืกืึทื‘ื™ืœืึทื˜ื™ื–, ืขืก ืื™ื– ื ืึธืš ืคืึทืจืฉื˜ื™ื™ื™ืง ืื•ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืฉืคึผืึทืœื˜ืŸ ืื™ืŸ ืฆื•ื•ื™ื™ ืžื™ื˜ ืžื™ื ื™ืžืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืงืœื™ืขื ื˜ ืงืึธื“. ืึทืกืขืžื‘ืึทืœ ืึท ื’ืœืื– ืคื•ืŸ ืฉืึทืจื“ื– ืคื•ืŸ ื’ืœืื– ืื™ื– ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ืžืขืจ ืฉื•ื•ืขืจ ืจืขื›ื˜ ืฆื• ื“ืขืจ ืงืึธื ื˜ืขืงืกื˜ ื•ื•ืึธืก ืื™ื– ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ืื™ื‘ืขืจ ืขื˜ืœืขื›ืข ื˜ืขืงืขืก ืื•ืŸ ื“ื™ ืคืขืœืŸ ืคื•ืŸ ื ื™ื™ื˜ื™ืง ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืื™ืŸ ื“ื™ ืงืœื™ืขื ื˜ ืงืึธื“.

ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ืจื•ืคืŸ ืขืก ืึท ื˜ืึธื’

ื“ืขืจ ืคืึทืจื ืขื ืคื•ืŸ SRP ืื™ื– ื ื™ืฉื˜ ืœื™ืžื™ื˜ืขื“ ืฆื• OOP ืื•ืŸ SOLID. ืขืก ืึทืคึผืœื™ื™ื– ืฆื• ืžืขื˜ื”ืึธื“ืก, ืคืึทื ื’ืงืฉืึทื ื–, ืงืœืืกืŸ, ืžืึทื“ื–ืฉื•ืœื–, ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก. ืขืก ืึทืคึผืœื™ื™ื– ืฆื• ื‘ื™ื™ื“ืข "ืคื™ื’ืึทืงืก-ืคื™ื’ืึทืงืก-ืื•ืŸ-ืคึผืจืึธื“" ืื•ืŸ "ืจืึทืงืขื˜-ื•ื•ื™ืกื ืฉืึทืคึฟื˜" ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ืžืื›ืŸ ื“ื™ ื•ื•ืขืœื˜ ืึท ื‘ื™ืกืœ ื‘ืขืกืขืจ ืื•ืžืขื˜ื•ื. ืื•ื™ื‘ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืื™ื, ื“ืึธืก ืื™ื– ื›ึผืžืขื˜ ื“ื™ ืคื•ื ื“ืึทืžืขื ื˜ืึทืœ ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ืึทืœืข ื™ื ื–ืฉืขื ื™ืขืจื™ืข. ืžืขื˜ืฉืึทื ื™ืงืึทืœ ืื™ื ื–ืฉืขื ื™ืจื™ืข, ืงืึธื ื˜ืจืึธืœ ืกื™ืกื˜ืขืžืขืŸ, ืื•ืŸ ื˜ืึทืงืข ืึทืœืข ืงืึธืžืคึผืœืขืงืก ืกื™ืกื˜ืขืžืขืŸ ื–ืขื ืขืŸ ื’ืขื‘ื•ื™ื˜ ืคื•ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ืื•ืŸ "ืึทื ื“ืขืจืคืจืึทื’ืžืึทื ื˜ื™ื™ืฉืึทืŸ" ื“ื™ืคึผืจื™ื™ื•ื•ื– ื“ื™ื–ื™ื™ื ืขืจื– ืคื•ืŸ ื‘ื™ื™ื’ื™ืงื™ื™ื˜, "ืึธื•ื•ืขืจืคืจืึทื’ืžืึทื ื˜ื™ื™ืฉืึทืŸ" ื“ื™ืคึผืจื™ื™ื•ื•ื– ื“ื™ื–ื™ื™ื ืขืจื– ืคื•ืŸ ืขืคืขืงื˜ื™ื•ื•ืงื™ื™ึทื˜, ืื•ืŸ ืคืึทืœืฉ ื‘ืึทื•ื ื“ืจื™ื– ืฆื•ื ืขืžืขืŸ ื–ื™ื™ ืคื•ืŸ ืกื™ื‘ื” ืื•ืŸ ืฉืœื•ื ืคื•ืŸ ื’ื™ื™ึทืกื˜.

ืื™ื™ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคึผืจื™ื ืฆื™ืคึผ. ื ื™ื˜ ื•ื•ื™ ืคึผืฉื•ื˜ ื•ื•ื™ ืขืก ืžื™ื™ื ื˜

SRP ืื™ื– ื ื™ืฉื˜ ื™ื ื•ื•ืขื ื˜ืึทื“ ื“ื•ืจืš ื ืึทื˜ื•ืจ ืื•ืŸ ืื™ื– ื ื™ืฉื˜ ื˜ื™ื™ืœ ืคื•ืŸ ืคึผื™ื ื˜ืœืขืš ื•ื•ื™ืกื ืฉืึทืคึฟื˜. ืขืก ื‘ืจื™ื™ืงืก ืื•ื™ืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื™ืึทืœืึทื“ื–ืฉื™ืงืึทืœ ืื•ืŸ ืคืกื™ื›ืืœืื’ื™ืฉืŸ ืœื™ืžื™ื˜ื™ื™ืฉืึทื ื–, ืขืก ืื™ื– ื ืึธืจ ืึท ื•ื•ืขื’ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืงืึธืžืคึผืœืขืงืก ืกื™ืกื˜ืขืžืขืŸ ื ื™ืฆืŸ ื“ืขื ื™ืคึผ-ืžืขื ื˜ืฉ ืžืึทืจืš. ืขืจ ื“ืขืจืฆื™ื™ืœื˜ ืื•ื ื“ื– ื•ื•ื™ ืฆื• ืฆืขืœืึธื–ืŸ ืึท ืกื™ืกื˜ืขื. ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ืคืึธืจืžื™ื•ืœื™ื™ืฉืึทืŸ ืคืืจืœืื ื’ื˜ ืึท ืฉื™ื™ืŸ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื˜ืขืœืขืคึผืึทื˜ื™, ืึธื‘ืขืจ ืื™ืš ื”ืึธืคึฟืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืงืœื™ืจื– ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกืžืึธื•ืงืกืงืจืขืขืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’