10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เป€เบฅเบทเป‰เบญเบเป†เบ‚เป‰เบญเบเบžเบปเบšเบเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเบดเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡ SOLID (เบžเบงเบเป€เบฎเบปเบฒ เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™เบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰.. - Transl.) เบซเบผเบท programming-oriented (OOP), เบซเบผเบทเป„เบ”เป‰เบเบดเบ™, เปเบ•เปˆเบขเปˆเบฒเปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบญเบฐเบ—เบดเบšเบฒเบเป€เบ–เบดเบ‡เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบซเบผเบฑเบเบเบฒเบ™ OOP เบ—เบตเปˆเบŠเปˆเบงเบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ›เบฐเบˆเปเบฒเบงเบฑเบ™เบ‚เบญเบ‡เบฅเบฒเบง. เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบ”เบต, เบ„เบปเบ™เบญเบทเปˆเบ™เบšเปเปˆเบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบปเบ”เบ„เบงเบฒเบกเบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เปเบฅเป‰เบง.

เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™: เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบญเปˆเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ "Habr" - เบชเปˆเบงเบ™เบซเบผเบธเบ” 10 rubles เป€เบกเบทเปˆเบญเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบซเบผเบฑเบเบชเบนเบ” Skillbox เป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบชเบปเปˆเบ‡เป€เบชเบตเบก "Habr".

Skillbox เปเบ™เบฐเบ™เปเบฒ: เบซเบผเบฑเบเบชเบนเบ”เบเบฒเบ™เบชเบถเบเบชเบฒเบญเบญเบ™เป„เบฅเบ™เปŒ "เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ Java".

เปเบซเป‰เบ‡ (เบขเปˆเบฒเป€เบฎเบฑเบ”เบŠเป‰เบณเบ”เป‰เบงเบเบ•เบปเบงเป€เบญเบ‡)

เบซเบผเบฑเบเบเบฒเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบžเปเบชเบปเบกเบ„เบงเบ™, เป‚เบ”เบเป€เบ™เบทเป‰เบญเปเบ—เป‰เปเบฅเป‰เบงเปเบกเปˆเบ™เบˆเบฐเปเบˆเป‰เบ‡เบˆเบฒเบเบŠเบทเปˆ: "เบขเปˆเบฒเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบ•เบปเบงเป€เบญเบ‡." เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบฅเบฐเบซเบฑเบ”เบŠเป‰เปเบฒเบเบฑเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปƒเบŠเป‰ abstraction เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ.

เบ–เป‰เบฒเบกเบตเบชเบญเบ‡เบžเบฒเบเบŠเป‰เปเบฒเบเบฑเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”, เบžเบงเบเบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ”เบฝเบง. เบ–เป‰เบฒเบ„เปˆเบฒ hardcoded เบ–เบทเบเปƒเบŠเป‰เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡, เบกเบฑเบ™เบ„เบธเป‰เบกเบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ.

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบฎเบฑเบเบชเบฒ, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบงเบฝเบเบ‡เบฒเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡ OOP. เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบฅเปˆเบงเบ‡เบฅเบฐเป€เบกเบตเบ”เบชเบฐเบซเบฐเบžเบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ”เบฝเบงเบเบฑเบ™เบˆเบฐเบšเปเปˆเบœเปˆเบฒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฑเบšเบ—เบฑเบ‡ OrderId เปเบฅเบฐ SSN.

เบ›เปˆเบฝเบ™ Encapsulation

เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบŠเบญเบšเปเบงเบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”เบชเปˆเบงเบ™เปƒเบซเบเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบกเบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบเบชเบฒเป„เบงเป‰. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบ”เป‰เบงเบ encapsulation. เบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบฎเบฑเบเบชเบฒเบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบซเบ™เบถเปˆเบ‡.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ‚เบฝเบ™เปƒเบ™ Java เปเบฅเป‰เบง เบกเบญเบšเปเบฒเบเบชเปˆเบงเบ™เบ•เบปเบงเปƒเบซเป‰เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™ เปเบฅเบฐเบ•เบปเบงเปเบ›เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบซเบผเบฑเบเบเบฒเบ™เป€เบ›เบตเบ”/เบ›เบดเบ”

เบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบˆเบทเปˆเป„เบ”เป‰เบ‡เปˆเบฒเบเป‚เบ”เบเบเบฒเบ™เบญเปˆเบฒเบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰: "เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบŠเบญเบšเปเบง (เบซเป‰เบญเบ‡เบฎเบฝเบ™, เป‚เบกเบ”เบนเบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆ, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบ„เบงเบ™เป€เบ›เบตเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ, เปเบ•เปˆเบ›เบดเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰." เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡.

เบซเบผเบฑเบเบเบฒเบ™เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เปเบเป‰เป„เบ‚, เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™, เปเบฅเบฐเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบญเบทเปˆเบ™เป†. เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบซเบผเบฑเบเบเบฒเบ™เป€เบ›เบตเบ” / เบ›เบดเบ”เบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบกเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบญเบญเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบกเบตเบšเบฑเบ™เบซเบฒเบซเบ™เป‰เบญเบเบเบฑเบšเบกเบฑเบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบฐเป€เบกเบตเบ”เบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰.

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบ, เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบ—เบธเบเบชเปˆเบงเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบŠเบดเป‰เบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบเบฒเบ™เป€เบ›เบตเบ”-เบ›เบดเบ”เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡ SOLID.

เบซเบผเบฑเบเบเบฒเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ”เบฝเบง (SRP)

เบซเบผเบฑเบเบเบฒเบ™เบญเบทเปˆเบ™เบˆเบฒเบเบŠเบธเบ” SOLID. เบกเบฑเบ™เบšเบญเบเบงเปˆเบฒ "เบกเบตเป€เบซเบ”เบœเบปเบ™เบ”เบฝเบงเบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™." เบซเป‰เบญเบ‡เบฎเบฝเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบซเบ™เป‰เบฒเบงเบฝเบ. เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบกเบตเบซเบผเบฒเบเบงเบดเบ—เบต, เปเบ•เปˆเบžเบงเบเบกเบฑเบ™เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบปเปˆเบงเป„เบ›เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ„เบงเบ™เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ™เบตเป‰.

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เบ„เบธเบ™เบ„เปˆเบฒเบ‚เบญเบ‡เบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบŠเบดเป‰เบ™เบ”เบฝเบงเบ‚เบญเบ‡เบŠเบญเบšเปเบงเปเบฅเบฐเบฅเบฐเบซเบฑเบ”. เบเบฒเบ™เป€เบžเบตเปˆเบกเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™เปƒเบซเป‰เบเบฑเบšเบซเป‰เบญเบ‡เบฎเบฝเบ™เปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบญเบ‡เบŸเบฑเบ‡เบŠเบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบˆเบฐเบ—เปเบฒเบฅเบฒเบเบ—เบตเบชเบญเบ‡, เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”. เปเบฅเบฐเบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบฎเบญเบšเบงเบฝเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบšเบฑเบ™เบซเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ.

เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ›เบตเป‰เบ™เบเบฑเบšเบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช (DIP)

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆ AppManager เบ‚เบถเป‰เบ™เบเบฑเบš EventLogWriter, เป€เบŠเบดเปˆเบ‡เบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบขเปˆเบฒเบ‡เปƒเบเป‰เบŠเบดเบ”เบเบฑเบš AppManager. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบงเบดเบ—เบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบŠเบธเบเบเบนเป‰, SMS, เบซเบผเบทเบญเบตเป€เบกเบง, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™ AppManager.

เบšเบฑเบ™เบซเบฒเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เบ”เป‰เบงเบ DIP. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ AppManager, เบžเบงเบเป€เบฎเบปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบต EventLogWriter, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบชเบฑเบเป‚เบ”เบเปƒเบŠเป‰เบเบญเบš.

DIP เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป‚เบกเบ”เบนเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเบเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™เป‚เบกเบ”เบนเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป‚เบกเบ”เบนเบ™เบซเบ™เบถเปˆเบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบปเบ™เบญเบทเปˆเบ™.

เบญเบปเบ‡เบ›เบฐเบเบญเบšเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบกเปเบฅเบฐเบ”เบปเบ

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบชเบญเบ‡เบงเบดเบ—เบตเบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบ„เบทเบ™เปƒเบซเบกเปˆเปเบกเปˆเบ™เบเบฒเบ™เบชเบทเบšเบ—เบญเบ”เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบญเบš, เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบตเบ‚เปเป‰เบ”เบตเปเบฅเบฐเบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. เบญเบฑเบ™เบ—เบตเบชเบญเบ‡เบกเบฑเบเบˆเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบกเบฑเบเป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบซเบผเบฒเบ.

เบญเบปเบ‡เบ›เบฐเบเบญเบšเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เปƒเบ™เป€เบงเบฅเบฒเปเบฅเปˆเบ™เป‚เบ”เบเบเปเบฒเบ™เบปเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™. เป€เบกเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, polymorphism เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบซเบผเบฒเบ.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ "Java เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบžเบฒเบš" Joshua Bloch เปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เบฐเบเบญเบšเบญเบปเบ‡เบ›เบฐเบเบญเบšเบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบชเบทเบšเบ—เบญเบ”.

เบซเบผเบฑเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ—เบ™ Barbara Liskov (LSP)

เบซเบผเบฑเบเบเบฒเบ™เบญเบทเปˆเบ™เบˆเบฒเบเบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท SOLID. เบกเบฑเบ™เบฅเบฐเบšเบธเบงเปˆเบฒเบ›เบฐเป€เบžเบ”เบเปˆเบญเบเบˆเบฐเบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เปเบ—เบ™เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš supertype. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบงเบดเบ—เบตเบเบฒเบ™เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš superclass เบ„เบงเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบš subclasses เบ‚เบญเบ‡เบกเบฑเบ™.

LSP เปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ—เบฑเบ‡เบซเบผเบฑเบเบเบฒเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ”เบฝเบง เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบ™เปเบšเปˆเบ‡เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบš. เบ–เป‰เบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเบเปˆเบงเบฒ subclass, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบˆเบฐเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ, เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰.

เบ™เบตเป‰เปเบกเปˆเบ™เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบเบฑเบš LSP.

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เบงเบดเบ—เบตเบเบฒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆ (Rectangle r) เบ„เบดเบ”เป„เบฅเปˆเบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบญเบ‡เบชเบตเปˆเบซเบฅเปˆเบฝเบก. เป‚เบ›เบฃเปเบเบฃเบกเบˆเบฐเบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ” Square, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ Square เบšเปเปˆเปเบกเปˆเบ™เบชเบตเปˆเบซเบฅเปˆเบฝเบกเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เบญเบตเบ‡เบ•เบฒเบกเบซเบผเบฑเบเบเบฒเบ™ LSP, เบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ„เบงเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เบ—เบตเปˆเป„เบ”เป‰เบกเบฒเป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ„เปเบฒเบ™เบดเบเบฒเบกเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบเปˆเบญเบ, เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเป‚เบ”เบ Barbara Liskov เปƒเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบชเปเบฒเบ„เบฑเบ™เบ›เบต 1987 เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ "Data Abstraction and Hierarchy" - เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™เบŠเบทเปˆเบ‚เบญเบ‡เบกเบฑเบ™.

เบซเบผเบฑเบเบเบฒเบ™เปเบเบเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ (ISP)

เบญเบตเบเบซเบผเบฑเบเบเบฒเบ™ SOLID. เบญเบตเบ‡เบ•เบฒเบกเบžเบฃเบฐเบญเบปเบ‡, เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบšเปเปˆเบ„เบงเบ™เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบฅเบฐเบšเบปเบšเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปเบฅเบฐ refactorable เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ.

เบชเปˆเบงเบ™เบซเบผเบฒเบเบกเบฑเบ, เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเบผเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเบฅเบนเบเบ„เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™.

เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ‚เบฝเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ›เบฑเบ™เบงเบฝเบเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเป€เบฅเบฑเบ”, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบกเบฑเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เปเบฒเบฅเบฒเบเบชเบดเปˆเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบกเบˆเบฐเป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒ.

เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบซเบผเบฑเบเบเบฒเบ™ ISP เปƒเบ™ Java เปเบกเปˆเบ™เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเปˆเบญเบ™, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบซเป‰เบญเบ‡เบฎเบฝเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบผเบฑเบเบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™.

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ—เบตเปˆเบ™เบตเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบˆเบฐเปเบˆเป‰เบ‡เบˆเบฒเบเบŠเบทเปˆ. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฑเบเบเบฒเบ™เบ™เบตเป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเปƒเบซเบกเปˆ.

เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰เบ›เบฐเป€เบžเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ›, เบ›เบฐเป€เบžเบ”เบเบฑเบšเบ„เบทเบ™, เบซเบผเบทเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบงเบดเบ—เบตเบเบฒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เปƒเบŠเป‰ SuperClass เบซเบผเบฒเบเบเบงเปˆเบฒ SubClass.

เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™:

เบฅเบฒเบเบŠเบทเปˆเบ•เบปเบงเป€เบฅเบ= getNumbers();

เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™:

เบˆเปเบฒเบ™เบงเบ™ ArrayList = getNumbers();

เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบˆเบดเบ‡เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบ„เบฐเบ™เบฐเบœเบนเป‰เปเบ—เบ™

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™ equals() เปเบฅเบฐ hashCode() เปƒเบ™ Java. เป€เบกเบทเปˆเบญเบงเบฑเบ”เบ–เบธเบชเบญเบ‡เบญเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบ›เบฝเบšเบ—เบฝเบš, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เบŠเบฑเป‰เบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบŠเบฑเป‰เบ™เบฅเบนเบเบ„เป‰เบฒ.

เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เบซเบผเบฑเบเบเบฒเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบกเบฑเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบžเบถเบ”เบ•เบดเบเปเบฒ. เบกเบฑเบ™เบเบฑเบ‡เปƒเบŠเป‰เบเบฑเบšเบ„เบฐเบ™เบฐเบœเบนเป‰เปเบ—เบ™เป€เบซเบ”เบเบฒเบ™.

10 เบซเบผเบฑเบเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบš Object Oriented เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš

เบซเบผเบฑเบเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™, เบชเบงเบเบ‡เบฒเบกเปเบฅเบฐเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบชเบนเบ‡เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปˆเปเบฒ. เปเบ™เปˆเบ™เบญเบ™, เบ—เบดเบ”เบชเบฐเบ”เบตเปเบกเปˆเบ™เบ”เบต, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบŠเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›เบซเบผเบฑเบ‡เบˆเบฒเบ mastering เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡ OOP เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบเบฒเบ™เบชเบถเบเบชเบฒเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบŠเบญเบšเปเบงเบ—เบปเปˆเบงเป„เบ›.

Skillbox เปเบ™เบฐเบ™เปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™