αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ” αž˜αž·αž“αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆ

αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ” αž˜αž·αž“αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆ αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™ αž¬αž αŸ…αžαžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ”
aka αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž—αžΆαž–αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž―αž€αžŸαžŽαŸ’αž‹αžΆαž“ - αž”αž»αžšαžŸαžšαž’αž·αž›αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž™αž›αŸ‹ αž“αž·αž„αžŸαŸ†αžŽαž½αžšαžŠαŸαž‚αž½αžšαž±αŸ’αž™αž—αŸαž™αžαŸ’αž›αžΆαž…αž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž―αžŸαŸ†αž—αžΆαžŸαž“αŸαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αž€αžΆαžšαžŸαŸ’αž‚αžΆαž›αŸ‹αž‚αŸ’αž“αžΆαžŠαŸαž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžšαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸαŸ‡αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž“αŸ…αžŠαžΎαž˜αž†αŸ’αž“αžΆαŸ†αž‘αžΈ XNUMX αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αŸ’αž˜αŸαž„αŸ—αž“αž·αž„αž”αŸƒαžαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž™αž€αž‘αŸ…αž–αŸ’αžšαŸƒαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž·αžŸαŸ’αžŸαž…αŸαž‰αž–αžΈαžŠαž„αŸ’αž€αžΌαžœ - αžŸαž·αžŸαŸ’αžŸαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαŸƒ αž™αžΎαž„αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆαž€αŸ’αžšαž»αž˜αžŠαŸ‚αž›αž˜αžΆαž“αž‚αŸ’αž“αžΆαž–αžΈ 8 αž‘αŸ… 9 αž“αžΆαž€αŸ‹ αž αžΎαž™αž˜αžΆαž“αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„αž˜αž½αž™ - αž€αŸ’αžšαž»αž˜αžŽαžΆαž“αžΉαž„αž•αžΉαž€αžœαŸ‰αžΌαžŠαž€αžΆαž˜αž½αž™αžŠαž”αž›αžΏαž“αž”αŸ†αž•αž»αž αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž‘αžΈαž˜αž½αž™αž–αžΈαž€αŸ’αžšαž»αž˜αž…αžΆαž€αŸ‹αžœαŸ‰αžΌαžŠαžΆαž€αžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž€αŸ‚αžœ αž‘αžΈαž–αžΈαžšαž•αžΉαž€αžœαžΆ αž αžΎαž™αž‘αžΈαž”αžΈαž˜αžΆαž“αž’αžΆαž αžΆαžšαžŸαž˜αŸ’αžšαž“αŸ‹αŸ” αž’αž„αŸ’αž‚αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž‡αž½αžšαž€αŸ’αžšαž»αž˜αŸ”

αž€αžšαžŽαžΈαžŠαŸ‚αž›αž‘αŸ†αž αŸ†αž‡αž½αžšαž‡αžΆαž–αž αž»αž‚αž»αžŽαž“αŸƒαž”αžΈ αž‚αžΊαž‡αžΆαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŠαŸαž›αŸ’αž’αžšαž”αžŸαŸ‹ សម αžšαž„αŸ’αžŸαŸŠαžΈ

αž“αž·αž™αž˜αž“αŸαž™ 1. αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ”

αž“αž·αž™αž˜αž“αŸαž™αž•αŸ’αž›αžΌαžœαž€αžΆαžšαž“αŸƒαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™ (SRP) αž…αŸ‚αž„αžαžΆ αž’αž„αŸ’αž‚αž—αžΆαž–αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœ αž“αž·αž„αž αŸαžαž»αž•αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαŸ’αžαž·αž—αžΆαž–αžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“ αž αžΎαž™αžœαžΆαž˜αžΆαž“αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αŸ”

αž–αž·αž…αžΆαžšαžŽαžΆαžœαžαŸ’αžαž» "αž’αŸ’αž“αž€αž•αžΉαž€" (Tippler).
αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžšαž”αžŸαŸ‹αž‚αžŽαž”αž€αŸ’αžŸ សម αžšαž„αŸ’αžŸαŸŠαžΈ αž™αžΎαž„αž“αžΉαž„αž”αŸ‚αž„αž…αŸ‚αž€αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž‡αžΆαž”αžΈαŸ–

  • αž˜αž½αž™αž…αžΆαž€αŸ‹ (PourOperation)
  • αž—αŸαžŸαž‡αŸ’αž‡αŸˆαž˜αž½αž™αž€αŸ‚αžœ (DrinkUpOperation)
  • αž˜αŸ’αž“αžΆαž€αŸ‹αž˜αžΆαž“αž’αžΆαž αžΆαžšαžŸαž˜αŸ’αžšαž“αŸ‹ (αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš TakeBite)

αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΈαž˜αž½αž™αŸ—αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αž˜αž½αž™αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž–αŸ„αž›αž‚αžΊαž˜αžΆαž“αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž’αžΆαžαžΌαž˜αž·αž€αž˜αž½αž™ - αž•αžΉαž€ αž…αžΆαž€αŸ‹ αž¬αž’αžΆαž αžΆαžšαžŸαž˜αŸ’αžšαž“αŸ‹αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αžœαŸαž“, αžšαž“αŸ’αž’αž•αžΉαž€, αž‚αžΊαž‡αžΆ facade αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡:

сlass Tippler {
    //...
    void Act(){
        _pourOperation.Do() // Π½Π°Π»ΠΈΡ‚ΡŒ
        _drinkUpOperation.Do() // Π²Ρ‹ΠΏΠΈΡ‚ΡŒ
        _takeBiteOperation.Do() // Π·Π°ΠΊΡƒΡΠΈΡ‚ΡŒ
    }
}

αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ” αž˜αž·αž“αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆ

αž αŸαžαž»αž’αŸ’αžœαžΈ?

αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸαžŸαžšαžŸαŸαžšαž€αžΌαžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ape-man αž αžΎαž™ ape-man αž‚αžΊαž˜αž·αž“αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹ αž†αŸ„αžαž›αŸ’αž„αž„αŸ‹ αž“αž·αž„αžαŸ‚αž„αžαŸ‚αž”αŸ’αžšαž‰αžΆαž”αŸ‹αŸ” αž‚αžΆαžαŸ‹β€‹αž’αžΆαž…β€‹αž€αžΆαž“αŸ‹β€‹αž“αž·αž„β€‹αž™αž›αŸ‹β€‹αž’αŸ†αž–αžΈ 3 αž‘αŸ… 7 αž–αžΆαž€αŸ’αž™β€‹αž€αŸ’αž“αž»αž„β€‹αž–αŸαž›β€‹αžαŸ‚β€‹αž˜αž½αž™β€‹αŸ”
αž€αŸ’αž“αž»αž„β€‹αž€αžšαžŽαžΈβ€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαž˜αžΉαž€β€‹αž˜αžΆαž“β€‹αž–αžΆαž€αŸ’αž™β€‹αŸ£β€‹αž™αŸ‰αžΆαž„β€‹αž“αŸαŸ‡β€‹αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžŸαžšαžŸαŸαžšαž€αžΌαžŠαžŠαŸ„αž™αž˜αž½αž™αžŸαž“αŸ’αž›αžΉαž€ αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αž˜αžΆαž“αžŠαŸƒ αžœαŸ‰αŸ‚αž“αžαžΆ αž€αžΆαžšαž”αŸ’αžšαž™αž»αž‘αŸ’αž’ αž“αž·αž„αž€αžΆαžšαžˆαŸ’αž›αŸ„αŸ‡αž”αŸ’αžšαž€αŸ‚αž€αž‚αŸ’αž“αžΆαž˜αž·αž“αž…αŸαŸ‡αž…αž”αŸ‹αž’αŸ†αž–αžΈαž“αž™αŸ„αž”αžΆαž™αŸ” αž αžΎαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž“αžΉαž„αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžαž½αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αŸ” αžαŸ’αž‰αž»αŸ†αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αž“αž€αž”αžΆαž“αžƒαžΎαž‰αž€αžΌαžŠαž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž“αž»αžŸαŸ’αžŸαž’αž˜αŸŒαž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž·αžαŸ’αžαžŸαžΆαžŸαŸ’αžαŸ’αžšαž‘αŸαŸ”

αž˜αŸ‰αŸ’αž™αžΆαž„αžœαž·αž‰αž‘αŸ€αž αžŸαžαŸ’αžœαžŸαŸ’αžœαžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ’αž›αŸ‚αž„αž’αŸ’αžœαžΎαžœαžαŸ’αžαž»αž–αž·αž—αž–αž›αŸ„αž€αž–αž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αž”αžΆαž›αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžšαž˜αžΎαžŸαŸ’αžšαž˜αŸƒαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹ αž‚αžΆαžαŸ‹αž’αžΆαž…αžšαž»αž‰αž–αž½αž€αžœαžΆαž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆ αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžœαžαŸ’αžαž»αžαŸ’αž˜αžΈαž–αžΈαž–αž½αž€αžœαžΆ αž αžΎαž™αž•αŸ’αžαžΆαž…αŸ‹αžœαžΆαžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αžŸαŸ’αžšαž˜αŸƒαž˜αžΎαž›αžšαžαž™αž“αŸ’αžαž˜αŸ‰αžΌαžŠαŸ‚αž›αž…αžΆαžŸαŸ‹αŸ” αžαžΆαž˜αž€αžΆαžšαžŸαŸ’αžšαž˜αžΎαžŸαŸ’αžšαž˜αŸƒαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž’αŸ’αž“αž€αž’αžΆαž…αž”αžΎαž€αž‘αŸ’αžœαžΆαžš αžŠαŸ„αŸ‡αžŸαŸ„αžšαž‘αŸ’αžœαžΆαžš αž αžΎαž™αžƒαžΎαž‰αž™αž“αŸ’αžαž€αžΆαžšαž›αžΎαž€αž”αž„αŸ’αž’αž½αž… αžŠαŸ‚αž›αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαž’αž”αŸ‹αž›αŸαžαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ "αž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈ" αž˜αž½αž™αŸ” αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ "αž”αž»αžšαžŸαžŸαŸ’αžœαžΆ" αž˜αž·αž“αž’αžΆαž…αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž”αŸ†αž”αŸ‚αž€αž™αž“αŸ’αžαž€αžΆαžšαžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž‘αŸ…αž‡αžΆαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž’αžΆαžαž»αžŠαŸ‚αž›αž˜αž·αž“αžŸαžΌαžœαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αž‘αŸαž…αž…αŸ„αž›αžαžΆαž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ– αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžαž™αž“αŸ’αžαž…αžΆαžŸαŸ‹αŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ†αž–αž„αŸ‹αžαŸ’αž™αž›αŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž‘αŸ’αžœαžΆαžš αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžαž™αž“αŸ’αžαž‘αŸ†αž“αžΎαž” αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž“αŸƒαžŸαŸ„αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž…αžšαžΆαžšαžΆαŸ†αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αž·αž“αž±αŸ’αž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αžŠαŸ‚αž›αž’αžΆαž…αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž“αŸ…αž–αŸαž›αž‡αž½αžŸαž‡αž»αž›αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡ សម αžšαž„αŸ’αžŸαŸŠαžΈ αž‚αžΊαž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž–αž“αŸ’αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αž”αŸ†αž”αŸ‚αž€ αž–αŸ„αž›αž‚αžΊαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αžΌαžŸαž”αž“αŸ’αž‘αžΆαžαŸ‹αž”αŸ‚αž„αž…αŸ‚αž€.

αž‚αžΆαžαŸ‹αž“αž·αž™αžΆαž™αžαžΆαžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αžαžΆαž˜αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€ "αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœ" αž–αŸ„αž›αž‚αžΊαž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž—αžΆαžšαž€αž·αž…αŸ’αž…αž“αŸƒαžœαžαŸ’αžαž»αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”

αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ” αž˜αž·αž“αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆ

αžαŸ„αŸ‡αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αž•αžΉαž€αžœαž·αž‰ αž“αž·αž„αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž·αžŠαŸ‚αž›αž”αž»αžšαžŸαžŸαŸ’αžœαžΆαž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαž›αžαžΌαž…αž…αž·αžαŸ’αžαŸ–

  • αž€αžΌαžŠαž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αžαŸ’αž›αžΆαŸ†αž„αž“αŸ…αž‚αŸ’αžšαž”αŸ‹αž€αž˜αŸ’αžšαž·αž
  • αž€αžΌαžŠαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ (αž“αžΈαž˜αž½αž™αŸ—αžŸαžšαžŸαŸαžšαž’αžΆαžαž»αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€)
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαžΆαž˜αž‰αŸ’αž‰ - αž’αžΆαžαž»αž€αžΆαž“αŸ‹αžαŸ‚αžŸαžΆαž˜αž‰αŸ’αž‰ αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž
  • αžŸαž˜αžΆαžŸαž—αžΆαž–αž“αŸƒαž€αžΌαžŠαž›αŸαž…αž‘αžΎαž„ - αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ†αž“αž½αžŸαž”αžΆαž“αŸ” DrinkUpOperation αžŠαž›αŸ‹β€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšβ€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αž”αŸ’αžšαž˜αžΉαž€β€‹αž…αžΆαž€αŸ‹β€‹αžšαžΆαžœβ€‹αž€αŸ’αžšαŸ„αž˜β€‹αžαž»αŸ” αž¬αž‡αŸ†αž“αž½αžŸαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž…αžΆαž€αŸ‹αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αž›αžΆαž™αžŸαŸ’αžšαžΆ αž“αž·αž„αž‘αžΉαž€ αž¬αžœαŸ‰αžΌαžŠαžΆαž€αžΆ αž“αž·αž„αžŸαŸ’αžšαžΆαž”αŸ€αžšαŸ” αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ‰αŸ‡αž€αžΌαžŠαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž Tippler.αž…αŸ’αž”αžΆαž”αŸ‹.
  • αž–αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αžαŸ‹ glutton (αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαŸ‚ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš TakeBit), αž‚αŸ’αžšαžΏαž„αžŸαŸ’αžšαžœαžΉαž„ (αž”αŸ’αžšαžΎαžαŸ‚ DrinkUpOperation αžαŸ’αžšαž„αŸ‹αž–αžΈαžŠαž”) αž“αž·αž„αž”αŸ†αž–αŸαž‰αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ”

(ធូ αžœαžΆαž αžΆαž€αŸ‹αž”αžΈαžŠαžΌαž…αž‡αžΆαž“αŸαŸ‡αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ 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 αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαžΆ "αž˜αŸ‰αžΌαžŒαž»αž›αž˜αžΆαž“αž αŸαžαž»αž•αž›αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš"αŸ” αž“αŸ„αŸ‡αž‚αžΊ "αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž‚αžΊαž‡αžΆαž αŸαžαž»αž•αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš" αŸ”

(αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž”αž»αžšαžŸαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αž·αž™αž˜αž“αŸαž™αžŠαžΎαž˜αž˜αžΆαž“αž‘αŸ†αž“αž»αž€αž…αž·αžαŸ’αžαž›αžΎαžŸαž˜αžαŸ’αžαž—αžΆαž– telepathic αžšαž”αžŸαŸ‹αž”αž»αžšαžŸαžŸαŸ’αžœαžΆ)

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αžœαžΈαŸ—αž”αžΆαž“αž’αŸ’αž›αžΆαž€αŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αž›αŸ‚αž„αŸ” αžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž‚αŸ’αž“αžΆ αž™αžΎαž„αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αžΈαžαž·αžœαž·αž’αžΈαž“αŸƒαž€αžΆαžšαž…αžΆαž€αŸ‹ αž€αžΆαžšαž•αžΉαž€ αž“αž·αž„αž’αžΆαž αžΆαžšαžŸαž˜αŸ’αžšαž“αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž’αŸ’αž“αž€αž•αžΉαž€αžαŸ’αž›αž½αž“αž―αž„ αž™αžΎαž„αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ‚αž›αŸ†αžŠαžΆαž”αŸ‹ αž“αž·αž„αžŸαž˜αžΆαžŸαž—αžΆαž–αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž§αž‘αžΆαž αžšαžŽαŸ αžŠαŸ„αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž’αžΆαž αžΆαžšαžŸαž˜αŸ’αžšαž“αŸ‹αž˜αž»αž“αž–αŸαž›αž•αžΉαž€ αž¬αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž’αžΆαž“αž“αŸ†αž”αž»αŸαž„αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž "αž†αŸ’αž–αŸ„αŸ‡αž‘αŸ…αž˜αž»αž αž“αž·αž„αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹" αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž…αŸ’αž”αžΆαž”αŸ‹. αž“αŸαŸ‡αž’αžΆαž…αž’αžΆαž“αž”αžΆαž“ αž“αž·αž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαžαž·αž…αžαž½αž… αž αžΎαž™αžœαžΆαž€αž˜αŸ’αžšαž“αžΉαž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαžšαžΏαž™αŸ—αžœαžΆαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸαž‚αž½αžšαž±αŸ’αž™αž—αŸαž™αžαŸ’αž›αžΆαž…αž“αŸƒ 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)
        }
    }
}

αž’αŸ’αž“αž€αž’αžΆαž“αžŠαŸ‚αž›αž›αŸ’αž’αž·αžαž›αŸ’αž’αž“αŸ‹αž“αžΉαž„αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž€αŸ’αžšαŸ„αž™, αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž˜αž»αž“αŸ” ΠΈ αž€αŸ†αž αž»αžŸ αž€αŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž›αž€αŸ’αžαžŽαŸˆαž”αž»αž‚αŸ’αž‚αž›αž•αž„αžŠαŸ‚αžš αž αžΎαž™αžŠαŸ„αž™αž—αžΆαž–αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‡αŸ†αž αžΆαž“αž˜αž»αž“αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαžαŸ’αž“αžΆαž€αŸ‹αž…αŸ†αž“αž½αž“αž”αžΈαŸ– PourLogger αž–αžΈαž˜αž»αž“, PourLoggerAfter ΠΈ PourErrorLogger.

αž αžΎαž™αžŠαŸ„αž™αž…αž„αž…αžΆαŸ†αžαžΆαž˜αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž•αžΉαž€αž˜αž½αž™αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αžαŸ’αž“αžΆαž€αŸ‹αž€αžΆαž”αŸ‹αžˆαžΎαž…αŸ†αž“αž½αž“αž”αŸ’αžšαžΆαŸ†αž”αž½αž“αŸ” αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αžšαž„αŸ’αžœαž„αŸ‹αž•αžΉαž€αž‘αžΆαŸ†αž„αž˜αžΌαž›αž˜αžΆαž“ 14 αžαŸ’αž“αžΆαž€αŸ‹ (!!!) αŸ”

αž’αŸŠαžΈαž–αŸ‚αž”αžΌαž‘αžΆ? αž–αž·αž”αžΆαž€! αž”αž»αžšαžŸαžŸαŸ’αžœαžΆαžŠαŸ‚αž›αž˜αžΆαž“αž‚αŸ’αžšαžΆαž”αŸ‹αž”αŸ‚αž€αžŠαŸƒαžŠαŸ‚αž›αžšαž›αžΆαž™αž“αžΉαž„αž”αŸ†αž”αŸ‚αž€ "αž’αŸ’αž“αž€αž…αžΆαž€αŸ‹" αž‘αŸ…αž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž…αžΆαž€αŸ‹αž‘αžΉαž€ αž€αž‰αŸ’αž…αž€αŸ‹ αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž…αžΆαž€αŸ‹αž‘αžΉαž€ αžŸαŸαžœαžΆαž•αŸ’αž‚αžαŸ‹αž•αŸ’αž‚αž„αŸ‹αž‘αžΉαž€ αž‚αŸ†αžšαžΌαžšαžΌαž”αžœαž“αŸ’αžαž“αŸƒαž€αžΆαžšαž”αŸ‰αŸ‡αž‘αž„αŸ’αž‚αž·αž…αž“αŸƒαž˜αŸ‰αžΌαž›αŸαž‚αž»αž› αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžšαžΈαž˜αžΆαžŸαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αžΆαžαŸ‹αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αžŸαŸ’αžšαžΆαž™αž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ αž’αžαŸαžšαžŸαž€αž›αŸ” αž αžΎαž™αž‡αžΏαžαŸ’αž‰αž»αŸ†αž‚αžΆαžαŸ‹αž“αžΉαž„αž˜αž·αž“αžˆαž”αŸ‹αž‘αŸαŸ”

αžαŸ’αžšαž„αŸ‹αž…αŸ†αžŽαž»αž…αž“αŸαŸ‡αž αžΎαž™ αžŠαŸ‚αž›αž˜αž“αž»αžŸαŸ’αžŸαž‡αžΆαž…αŸ’αžšαžΎαž“αžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αžαžΆ សម αžšαž„αŸ’αžŸαŸŠαžΈ αž‡αžΆαžšαžΏαž„αž“αž·αž‘αžΆαž“αž–αžΈαž“αž‚αžšαž–αžŽαŸŒαž•αŸ’αž€αžΆαžˆαžΌαž€ αž αžΎαž™αž‘αŸ…αž›αŸαž„αž‚αž»αž™αž‘αžΆαžœ...

... αžŠαŸ„αž™αž˜αž·αž“αž”αžΆαž“αžŸαž·αž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž’αžαŸ’αžαž·αž—αžΆαž–αž“αŸƒαž“αž·αž™αž˜αž“αŸαž™αž‘αžΈαž”αžΈαž“αŸƒ Srp:

β€œαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αž…αŸ‚αž„αžαžΆ αžšαž”αžŸαŸ‹αžŠαŸ‚αž›αžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž‚αž½αžšαžαŸ‚αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžαŸ‚αž˜αž½αž™"αŸ” ឬ "αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž€αžΆαžšβ€‹αž•αŸ’αž›αžΆαžŸαŸ‹β€‹αž”αŸ’αžαžΌβ€‹αžšβ€‹αžšαž½αž˜β€‹αž‚αŸ’αž“αžΆβ€‹αž‚αž½αžšβ€‹αžαŸ‚β€‹αžšαž€αŸ’αžŸαžΆβ€‹αž‘αž»αž€β€‹αž“αŸ…β€‹αž˜αž½αž™β€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹"

αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž½αž™αž“αŸ„αŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžœαžΆαž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžαŸ‚αž˜αž½αž™αŸ”

αž“αŸαŸ‡αž‡αžΆαž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹ αž–αŸ’αžšαŸ„αŸ‡αžšαžΆαž›αŸ‹αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αžšαž”αžŸαŸ‹ សម αžšαž„αŸ’αžŸαŸŠαžΈ αžαžΆαž„αž›αžΎ αž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆ αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž€αž˜αŸ’αž‘αŸαž…αž”αŸ’αžšαž—αŸαž‘ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αž‘αŸαž… αž–αŸ„αž›αž‚αžΊαž–αž½αž€αž‚αŸαžŠαžΆαž€αŸ‹ β€œαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžαžΆαž„αž›αžΎβ€ αž›αžΎαž‘αŸ†αž αŸ†αžœαžαŸ’αžαž» αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ "αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž‘αžΆαž”" αžšαž½αž…αž αžΎαž™αŸ” αž€αŸ’αž“αž»αž„β€‹αž“αŸαž™β€‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αž, សម αžšαž„αŸ’αžŸαŸŠαžΈ αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™ "αž€αŸ†αž‘αŸαž…αž–αŸαž›αž€αŸ†αž‘αŸαž…" αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž˜αž·αž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž αž½αžŸαž”αŸ’αžšαž˜αžΆαžŽ - "αž€αž»αŸ†αž€αŸ†αž‘αŸαž…αžšαž”αžŸαŸ‹αžŠαŸ‚αž›αž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„". αž“αŸαŸ‡αž‡αžΆαžŸαž˜αžšαž—αžΌαž˜αž·αžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αžšαžœαžΆαž„αž‘αžΆαž˜αžšαž”αžŸαŸ‹ Occam αž“αž·αž„αž”αž»αžšαžŸαžŸαŸ’αžœαžΆ!

αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ” αž˜αž·αž“αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆ

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αž“αž€αž•αžΉαž€αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž’αžΌαžšαžŸαŸ’αžšαžΆαž›αŸ” αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ‚αž„αž…αŸ‚αž€αž’αŸ’αž“αž€αž€αžΆαž”αŸ‹αžˆαžΎ IPourLogger αž‡αžΆαž”αžΈαžαŸ’αž“αžΆαž€αŸ‹αž‘αŸ αž™αžΎαž„αž€αŸαž’αžΆαž…αž•αŸ’αžŸαŸ†αž’αŸ’αž“αž€αž€αžΆαž”αŸ‹αžˆαžΎαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž˜αž½αž™αž•αž„αžŠαŸ‚αžšαŸ–

class OperationLogger{
    public OperationLogger(string operationName){/*..*/}
    public void LogBefore(object[] args){/*...*/}       
    public void LogAfter(object[] args){/*..*/}
    public void LogError(object[] args, exception e){/*..*/}
}

αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αŸ’αžšαž—αŸαž‘αž‘αžΈ XNUMX αž“αŸ„αŸ‡αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž‚αžΊαžšαž½αž…αžšαžΆαž›αŸ‹αž αžΎαž™αŸ” αž αžΎαž™αž€αžΌαžŠαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αž›αž½αž“αž―αž„αž‚αžΊαžŸαŸ’αž’αžΆαž αž“αž·αž„αž‚αŸ’αž˜αžΆαž“αžŸαŸ†αž›αŸαž„αžšαŸ†αžαžΆαž“αž–αžΈαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž™αžΎαž„αž˜αžΆαž“ 5 αžαŸ’αž“αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž•αžΉαž€:

  • αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž…αžΆαž€αŸ‹
  • αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αžΉαž€
  • αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž€αž€αžŸαŸ’αž‘αŸ‡
  • αž’αŸ’αž“αž€αž€αžΆαž”αŸ‹αžˆαžΎ
  • facade αž’αŸ’αž“αž€αž•αžΉαž€

αž–αž½αž€αž‚αŸαž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„αž…αŸ†αž–αŸ„αŸ‡αž˜αž»αžαž„αžΆαžšαž˜αž½αž™ αž αžΎαž™αž˜αžΆαž“αž αŸαžαž»αž•αž›αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž…αŸ’αž”αžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ…αž€αŸ’αž”αŸ‚αžšαž“αŸ„αŸ‡αŸ”

αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΈαžœαž·αžαž–αž·αž

αž™αžΎαž„αž’αŸ’αž›αžΆαž”αŸ‹αž”αžΆαž“αžŸαžšαžŸαŸαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ b2b αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αŸ” αž αžΎαž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžšαž”αžŸαŸ‹αž–αŸ’αžšαŸ‡αž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 200 αž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž˜αžΆαžαž·αž€αžΆαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ:

  • αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹ 1C αž αžΎαž™αž”αž„αŸ’αž€αžΎαžαž‚αžŽαž“αžΈαž˜αž½αž™αŸ”
  • αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αžŽαž“αžΈαž“αŸαŸ‡ αžŸαžΌαž˜αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΌαžŒαž»αž›αž”αž„αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹ αž αžΎαž™αž”αž„αŸ’αž€αžΎαžαžœαžΆαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡
  • αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαž‚αžŽαž“αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž‚αžŽαž“αžΈαž”αŸ‚αž”αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αŸαŸ”
  • αž”αž„αŸ’αž€αžΎαžαž‚αžŽαž“αžΈαžαŸ’αž˜αžΈαŸ”
  • αž”αž“αŸ’αžαŸ‚αž˜αž›αž‘αŸ’αž’αž•αž›αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΌαžŒαž»αž›αž”αž„αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹ αž“αž·αž„αž›αŸαž 1c αž‘αŸ…αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž›αž‘αŸ’αž’αž•αž›αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡
  • αž”αž“αŸ’αžαŸ‚αž˜αž–αŸαžαŸŒαž˜αžΆαž“αž‚αžŽαž“αžΈαž‘αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž“αŸαŸ‡αŸ”
  • αž”αž„αŸ’αž€αžΎαžαž›αŸαžαž…αŸ†αžŽαž»αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž…αŸ†αžŽαž»αž…αŸ” αž αž»αž…αž›αŸαžαž‚αžŽαž“αžΈ 1c αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸαŸ‡αŸ”

αž αžΎαž™αž˜αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αž”αŸ’αžšαž αŸ‚αž› 10 αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸαž‚αž½αžšαž±αŸ’αž™αž—αŸαž™αžαŸ’αž›αžΆαž…αŸ” αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžαŸ’αžαž»αž‚αžŽαž“αžΈαŸ” αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž…αŸ†αžŽαž»αž… αž“αž·αž„αžˆαŸ’αž˜αŸ„αŸ‡αž’αžαž·αžαž·αž‡αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‡αžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž“αŸƒαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž½αž™αž˜αŸ‰αŸ„αž„αž“αŸƒαž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αž‘αžΎαž„αžœαž·αž‰ αž™αžΎαž„αž’αžΆαž…αž”αŸ†αž”αŸ‚αž€αž€αžΌαžŠαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž…αŸ†αžŽαž»αž…αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‚αžŽαž“αžΈαž‘αŸ…αž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž/αžαŸ’αž“αžΆαž€αŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžšαž”αžŸαŸ‹αž–αŸ’αžšαŸ‡αž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž› αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž›αŸαžαž€αžΌαžŠαž…αŸ†αž“αž½αž“ 100 αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹ αžŠαŸ‚αž›αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αž…αž„αŸ‹αž±αŸ’αž™αžœαžΆαžšαž αŸ‚αž€αŸ”

αž˜αžΆαž“αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αžΈαžšαž”αžΈαžαŸ’αž„αŸƒαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž "αžŸαŸ’αžšαžΆαž›" αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αŸ” αž αžΎαž™αžαžΆαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαžŠαžΎαž˜αž“αŸƒαž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‚αžΊαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŽαžΆαžŸαŸ‹αŸ” αž αžΎαž™β€‹αžœαžΆβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž”αŸ‰αž»αž“αž”αŸ‰αž„β€‹αž”αŸ†αž”αŸ‚αž€β€‹αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšβ€‹αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž”αŸ†αžŽαŸ‚αž€β€‹αžŠαŸ‚αž›β€‹αž“αžΉαž„β€‹αž”αŸ†αž–αžΆαž“β€‹αž‚αžŽαž”αž€αŸ’αžŸβ€‹αžŸαž˜αžšαž„αŸ’αžŸαŸŠαžΈ αž αžΎαž™β€‹αž˜αž·αž“β€‹αž•αŸ’αž‘αž»αž™β€‹αž˜αž€αžœαž·αž‰β€‹αž‘αŸαŸ”

αžšαž”αž”αž“αž·αž™αž˜αŸ”

αžŠαž›αŸ‹β€‹αž–αŸαž›β€‹αž‘αž»αž€β€‹αž²αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αžŸαŸ’αžšαžœαžΉαž„β€‹αž“αŸ…β€‹αž˜αŸ’αž“αžΆαž€αŸ‹β€‹αž―αž„αŸ” αž‡αžΌαžαž‘αžΉαž€αž—αŸ’αž“αŸ‚αž€αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ - αž™αžΎαž„αž”αŸ’αžšαžΆαž€αžŠαž‡αžΆαž“αžΉαž„αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αžœαžΆαžœαž·αž‰αž“αŸ…αžαŸ’αž„αŸƒαžŽαžΆαž˜αž½αž™αŸ” αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡ αž…αžΌαžšβ€‹αž™αžΎαž„β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„β€‹αž‡αžΆβ€‹αž•αŸ’αž›αžΌαžœαž€αžΆαžšβ€‹αž–αžΈβ€‹αž’αžαŸ’αžαž”αž‘β€‹αž“αŸαŸ‡αŸ”

αž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ‚αž”αž”αž‘ ៑.αž“αž·αž™αž˜αž“αŸαž™αžšαž”αžŸαŸ‹αž‚αžŽαž”αž€αŸ’αžŸαžŸαž˜αžšαž„αŸ’αžŸαŸŠαžΈ

  1. αž”αŸ†αž”αŸ‚αž€αž’αžΆαžαž»αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž–αž½αž€αž‚αŸαž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αžšαžΏαž„αž˜αž½αž™αŸ”
  2. αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ†αžŽαžΆαž„αž±αŸ’αž™ "αž αŸαžαž»αž•αž›αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš" αŸ” αž“αŸ„αŸ‡αž‚αžΊαž’αžΆαžαž»αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž αŸαžαž»αž•αž›αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αŸ”
  3. αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαž€αŸ’αžαžΆαž“αž»αž–αž›αž…αŸ†αž–αŸ„αŸ‡αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αŸ” αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžΈαž™αž€αž˜αŸ’αž˜αŸ” αž’αžΆαžαž»αžŠαŸ‚αž›αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžαŸ’αžšαžΌαžœαžαŸ‚αž“αŸ…αž‡αž·αžαŸ”

αž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ‚αž”αž”αž‘ 2. αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ”

αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αžƒαžΎαž‰β€‹αž›αž€αŸ’αžαžŽαŸˆβ€‹αžœαž·αž“αž·αž…αŸ’αž†αŸαž™β€‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž”αŸ†αž–αŸαž‰β€‹αž‚αžŽαž”αž€αŸ’αžŸ សម αžšαž„αŸ’αžŸαŸŠαžΈ αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ–

1) αžŸαž½αžšαžαŸ’αž›αž½αž“αž―αž„αžαžΆαžαžΎαžαŸ’αž“αžΆαž€αŸ‹/αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž/αž˜αŸ‰αžΌαžŒαž»αž›/αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸαŸ‡αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαŸ” αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž†αŸ’αž›αžΎαž™αžœαžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž“αž·αž™αž˜αž“αŸαž™αžŸαžΆαž˜αž‰αŸ’αž‰αŸ” (αžŸαžΌαž˜αž’αžšαž‚αž»αžŽ αž”αŸ’αžšαžΆαž™αžαžΌαžšαžΈ )

αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹

αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž–αŸαž›αžαŸ’αž›αŸ‡αžœαžΆαž–αž·αž”αžΆαž€αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž“αž·αž™αž˜αž“αŸαž™αžŸαžΆαž˜αž‰αŸ’αž‰

2) αž‡αž½αžŸαž‡αž»αž›αž€αŸ†αž αž»αžŸ αž¬αž”αž“αŸ’αžαŸ‚αž˜αž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž…αŸ†αž“αž½αž“αž―αž€αžŸαžΆαžš/αžαŸ’αž“αžΆαž€αŸ‹αž’αž”αŸ’αž”αž”αžšαž˜αžΆαŸ” αžαžΆαž˜αž§αžαŸ’αžŠαž˜αž‚αžαž· - αž˜αž½αž™αŸ”

αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹

αžŠαŸ„αž™αžŸαžΆαžšαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœ (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸ αž¬αž€αŸ†αž αž»αžŸ) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš/αžαŸ’αž“αžΆαž€αŸ‹αž˜αž½αž™ αž’αŸ’αž“αž€αžŠαžΉαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž–αžΈαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž˜αžΎαž› αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αŸ” αž§αž‘αžΆαž αžšαžŽαŸαŸ– αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž€αžΆαž”αŸ‹αžˆαžΎαž“αžΉαž„αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ‚αž’αŸ’αž“αž€αž€αžΆαž”αŸ‹αžˆαžΎαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžšαžαŸ‹αžαžΆαž˜αž›αŸαžαž€αžΌαžŠαžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž‘αŸαŸ”

αž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αž‘αŸ€αžαž‚αžΊαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ UI αžαŸ’αž˜αžΈ αžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž»αž“αŸ—αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αŸαŸ‡αž”αž„αŸ’αžαŸ†αž’αŸ’αž“αž€αž±αŸ’αž™αž”αž“αŸ’αžαŸ‚αž˜ 10 αž’αž„αŸ’αž‚αž—αžΆαž–αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αž“αž·αž„ 15 αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαžœαžΆαž›αžΎαžŸαŸ”

3) αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž›αžΎαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αŸ„αŸ‡αž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž‡αž˜αŸ’αž›αŸ„αŸ‡αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ αž–αŸ„αž›αž‚αžΊαž›αž‘αŸ’αž’αž—αžΆαž–αžŠαŸ‚αž›αž―αž€αžŸαžΆαžš/αžαŸ’αž“αžΆαž€αŸ‹αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαŸ„αž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αž‚αžΊαžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαŸ”

αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αŸ…αž–αŸαž›αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αž˜αžΈ "αž…αžΆαž€αŸ‹αžœαŸ‰αžΌαžŠαžΆαž€αžΆαž“αŸ…αž€αŸ’αžšαŸ„αž˜αžαž»" αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž’αŸ’αž“αž€αž€αžΆαž”αŸ‹αžˆαžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαž€αžΆαžšαž•αžΉαž€αž“αž·αž„αž…αžΆαž€αŸ‹αž“αŸ„αŸ‡αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αž“αŸαŸ‡αž˜αž·αž“αžαŸ‚αž„αžαŸ‚αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž‘αŸαž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž‚αž½αžšαžαŸ‚αž–αŸ’αž™αžΆαž™αžΆαž˜αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžαž½αž›αŸαžαž“αŸαŸ‡αŸ”

4) αž“αŸ…αž–αŸαž›αžŸαž½αžšαžŸαŸ†αžŽαž½αžšαž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž’αŸ†αž–αžΈαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ (αž–αžΈαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž¬αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„) αž’αŸ’αž“αž€αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž“αžΆαž€αŸ‹/αž―αž€αžŸαžΆαžšαž˜αž½αž™αž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„ αž αžΎαž™αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž–αžΈαž‘αžΈαž“αŸ„αŸ‡αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹

αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸ αž…αŸ’αž”αžΆαž”αŸ‹ αž¬αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž™αŸ‰αžΆαž„αžαžΌαž…αž…αž„αŸ’αž’αŸ€αž αž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžαŸ‚αž˜αž½αž™ αž“αž·αž„αž˜αž·αž“αžšαžΆαž™αž”αŸ‰αžΆαž™αžŠαŸ„αž™αž‘αž„αŸ‹αž‡αžΆαžαž·αž–αžΆαžŸαž–αŸαž‰αž…αž“αŸ’αž›αŸ„αŸ‡αž€αžΌαžŠαž“αŸ„αŸ‡αž‘αŸαŸ”

5) αžˆαŸ’αž˜αŸ„αŸ‡αž‚αžΊαž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αŸ”

αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹

αžαŸ’αž“αžΆαž€αŸ‹ αž¬αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αžšαžΏαž„αž˜αž½αž™ αž αžΎαž™αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αž†αŸ’αž›αž»αŸ‡αž”αž‰αŸ’αž…αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžœαžΆαŸ”

AllManagersManagerService - αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‘αŸ†αž“αž„αž‡αžΆαžαŸ’αž“αžΆαž€αŸ‹αž–αŸ’αžšαŸ‡
LocalPayment - αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αž˜αŸ‚αž“αž‘αŸαŸ”

αž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ‚αž”αž”αž‘ 3. αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ Occam-first αŸ”

αž“αŸ…αžŠαžΎαž˜αžŠαŸ†αž”αžΌαž„αž“αŸƒαž€αžΆαžšαžšαž…αž“αžΆαž”αž»αžšαžŸαžŸαŸ’αžœαžΆαž˜αž·αž“αžŠαžΉαž„αž“αž·αž„αž˜αž·αž“αž˜αžΆαž“αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžαžΆ subtleties αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž αžΎαž™αž’αžΆαž…αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž€αŸ†αž αž»αžŸαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαžαž»αžŸαžαžΆαž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ–

  • αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžαŸ’αžαž»αž’αŸ†αž–αŸαž€αžŠαŸ„αž™αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ
  • αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αž”αŸ‚αž„αž…αŸ‚αž€αž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αž‘αŸ…αž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”
  • αž€αŸ†αžŽαžαŸ‹αž–αŸ’αžšαŸ†αžŠαŸ‚αž“αž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ

αžœαžΆαž‡αžΆαžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž…αŸ’αž”αžΆαž”αŸ‹αŸ– "αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž€αŸ†αž αž»αžŸαž’αŸ†" ឬ "αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αŸ’αžšαžΆαž€αžŠ αž€αž»αŸ†αž”αŸ†αž”αŸ‚αž€αžœαžΆαž…αŸαž‰" αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž“αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž˜αžΆαž“αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž–αžΈαžš αž“αŸ„αŸ‡αžœαžΆαž“αŸ…αžαŸ‚αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“ αž αžΎαž™αž’αžΆαž…αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆαž–αžΈαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαž…αŸ†αž–αŸ„αŸ‡αž€αžΌαžŠαž’αžαž·αžαž·αž‡αž“αŸ” αž€αžΆαžšαž•αŸ’αž‚αž»αŸ†αž€αž‰αŸ’αž…αž€αŸ‹αž–αžΈαž”αŸ†αžŽαŸ‚αž€αž“αŸƒαž€αž‰αŸ’αž…αž€αŸ‹αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž–αž·αž”αžΆαž€αž‡αžΆαž„ αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αžšαž·αž”αž‘αž€αŸ†αž–αž»αž„αžšαžΈαž€αžšαžΆαž›αžŠαžΆαž›αž“αŸ…αž›αžΎαž―αž€αžŸαžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“ αž“αž·αž„αž€αž„αŸ’αžœαŸ‡αž—αžΆαž–αž’αžΆαžŸαŸ’αžšαŸαž™αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαž’αžαž·αžαž·αž‡αž“αŸ”

αžœαžΆαžŠαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž αŸ…αžœαžΆαž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒ

αžœαž·αžŸαžΆαž›αž—αžΆαž–αž“αŸƒ SRP αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž…αŸ†αž–αŸ„αŸ‡ OOP αž“αž·αž„ SOLID αž‘αŸαŸ” αžœαžΆαž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αž˜αž»αžαž„αžΆαžš αžαŸ’αž“αžΆαž€αŸ‹ αž˜αŸ‰αžΌαžŒαž»αž› αžŸαŸαžœαžΆαž˜αžΈαž€αŸ’αžšαžΌ αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αžœαžΆαž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αžΆαŸ†αž„ "figax-figax-and-prod" αž“αž·αž„ "rocket-science" αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αž–αž·αž—αž–αž›αŸ„αž€αž€αžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αŸ…αž‚αŸ’αžšαž”αŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‚αž·αžαž’αŸ†αž–αžΈαžœαžΆ αž“αŸαŸ‡αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‚αŸ’αžšαžΉαŸ‡αž“αŸƒαžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αž˜αŸαž€αžΆαž“αž·αž€ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž–αžΈαžŸαž˜αžΆαžŸαž’αžΆαžαž» αž αžΎαž™ "αž€αžΆαžšαž”αžΆαž€αŸ‹αž”αŸ‚αž€" αžŠαž€αž αžΌαžαž’αŸ’αž“αž€αžšαž…αž“αžΆαž“αŸƒαž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“ "αž€αžΆαžšαž”αŸ‚αž€αžαŸ’αž‰αŸ‚αž€αž αž½αžŸαž”αŸ’αžšαž˜αžΆαžŽ" αžŠαž€αž αžΌαžαž’αŸ’αž“αž€αžšαž…αž“αžΆαž–αžΈαž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž“αž·αž„αž–αŸ’αžšαŸ†αžŠαŸ‚αž“αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αžŠαž€αž αžΌαžαž αŸαžαž»αž•αž› αž“αž·αž„αžŸαž“αŸ’αžαž·αž—αžΆαž–αž“αŸƒαž…αž·αžαŸ’αžαŸ”

αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžαŸ‚αž˜αž½αž™αŸ” αž˜αž·αž“αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆ

SRP αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž’αž˜αŸ’αž˜αž‡αžΆαžαž·αž‘αŸ αž αžΎαž™αž€αŸαž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαžœαž·αž‘αŸ’αž™αžΆαžŸαžΆαžŸαŸ’αžαŸ’αžšαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžŠαŸ‚αžšαŸ” αžœαžΆαž”αŸ†αž”αŸ‚αž€αž…αŸαž‰αž–αžΈαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž‡αžΈαžœαžŸαžΆαžŸαŸ’αžαŸ’αžš αž“αž·αž„αž•αŸ’αž›αžΌαžœαž…αž·αžαŸ’αžαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαžœαž·αž’αžΈαž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αž’αž—αž·αžœαžŒαŸ’αžαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎαžαž½αžšαž€αŸ’αž”αžΆαž›αž˜αž“αž»αžŸαŸ’αžŸαŸ” αž‚αžΆαžαŸ‹αž”αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž–αžΈαžšαž”αŸ€αž”αž”αŸ†αž”αŸ‚αž€αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αžšαžΌαž”αž˜αž“αŸ’αžαžŠαžΎαž˜αž‘αžΆαž˜αž‘αžΆαžšαž±αŸ’αž™αž˜αžΆαž“αž”αžšαž·αž˜αžΆαžŽαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒ telepathy αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžŸαž˜αŸ’αž’αžΆαžαž’αŸαž€αŸ’αžšαž„αŸ‹αž•αŸ’αžŸαŸ‚αž„αžαŸ’αž›αŸ‡αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹