ืืฉืืชื ืืชืืื ืืืืื ื'ืืืื ืืฉืคืช ืืงืืืื ืืจืืฉืื ื ืฉืื, ืชืฆืืจื ืืืืจื ืืืืื ืืกืคืจ ืืืจืื ืืกืืกืืื ืขื ืชืื ืืช ืืคืืชืื ืชืืื ื. ืืืช ืืื ืืื ืคืจืืืืืืช ืชืื ืืช ืืืืืืื ืืื ืืื. ืชืื ืืช ืคืื ืงืฆืืื ืื ืืชืื ืืช ืืื ืื ืขืฆืืื ืื ืฉืชื ืืคืจืืืืืืช, ืื ืืกืื ืื ืืช, ืฉื ืชืื ืืช, ืฉืื ื ืืืืืื ืืืกืชืื ืขืืืื ืืืื, ืื ื ืกื ืืืืื ืืื ืืืืืจ ืืืืฆื ืฉืื ืื ืชืื ืืช ืคืื ืงืฆืืื ืื ื- OOP. ืืืจืช ืคืจืืืืืืช ืชืื ืืช ืชืืื ืืืง ืืฉืื ืืืืชื ืืืข ืชืืืืจืื ืืกืืกื ืฉืื ืืชืื ืช ืจืฆืื ื ืฆืจืื, ืืืืืื ืื ืืื/ืืื ืฉืืืคืื ืืงืจืืืจื ืืจืืืช ืืืื ืืคืืชืื ืชืืื ื.
ืืื ืคืจืืืืืช ืชืื ืืช?
ืืื ืืื ืืืืื ืืช ืืืืืืื ืืื OOP ืืชืื ืืช ืคืื ืงืฆืืื ืื (FP), ืื ืื ื ืืืืช ืฆืจืืืื ืืืชืืื ืืืืกืืืืช ืืื ืืืืืืืจ ืืื ืืขืฆื ืคืจืืืืืช ืชืื ืืช. ืคืจืืืืืช ืืชืื ืืช ืืื ืืจื ืืกืืื ืฉืคืืช ืงืืืื ืขื ืกืื ืชืืื ืืชืืื, ืืฉืจ ืืฉืืืืื ืืืฆืจืืช ืคืจืืืืื ืื ืกืื ืื, ืืจื ืืกืืืืช ืฉื ืชืื ืืช ืืืฉื. ืืกืคืจ ืืืคืืื ืื ืงืืืขืื ืคืจืืืืืช ืชืื ืืช, ืืืื ืืืืืืงืืื, ืืจืืืช ืืงืจื, ืืืืืืจืืืช, ืคืกืืงืืช ืื ืืืจืืขืื ืืื'. ืืืื ืฉืื ืงืืจื ืขื ืฉืคืืช ืงืืืื, ืืื ืคืจืืืืืช ืชืื ืืช ืืฉ ืืช ืืืชืจืื ืืช ืืืืกืจืื ืืช ืฉืื, ืืขื ืื ืื, ืืืืงืืช ืืืืืฉืืช, ืืฉืจ ืขืืื ืืงืืช ืืืฉืืื ืืขืช โโืืืืจืช ืฉืคื ืขืืืจ ืืคืจืืืงื ืฉืืชื ืืืฉื.
ืื ืื OOP?
ืชืื ืืช ืืื ืื ืขืฆืืื (OOP) ืืื ืคืจืืืืืช ืชืื ืืช ืืืฉืืืช ืืืฉืชืืฉืช ืืืืืืืงืืื ืืืคืชื. ืืืืื ืื, ืืืืืืงืืื ืืฉืืฉืื ืืืืฆืื ืืืจืื ืฉืืชื ืืชืื ืช. ืืคืฉืจ ืื ืืืืจ ืฉ-OOP ืืฉืชืืฉืช ืืืคืฉืื ืืื ืืืฆืืจ ืืืืืื ืืืืืกืกืื ืขื ืืขืืื ืืืืืชื. ืฉืคืืช ืชืื ืืช ืคืืคืืืจืืืช ืจืืืช ืชืืืืืช ื-OOP, ืืืื Java, C++, Python ื-PHP. ืืกืคืจ ืืื ืืงืืช ืืคืจืืืืืืช ืชืื ืืช ืืืจืืช ืฉืืืงืื ืืขืืจ ืื ืืืง ื-OOP, ืืื ืืืืืืจืืืช, ืคืืืืืืจืคืืื, ืื ืงืคืกืืืฆืื, ืืคืฉืื ืืืืจืฉื.
ืืื ืชืื ืืช ืคืื ืงืฆืืื ืื?
ืชืื ืืช ืคืื ืงืฆืืื ืื ืืื ืื ืคืจืืืืืช ืชืื ืืช, ืืืชืืงืืช ืืืขืจืืช ืคืื ืงืฆืืืช ืืคืืชืื ืืื ื ืงืื ืืชืืื ืืช, ืืืกืืคื ืฉื ืืืจ ื ืื ืขืช ืืื ืืฆืืื ืืฉืชื ืื ืื ืชืื ืื ืื ืืชื ืื ืืฉืื ืื. ืชืื ืืช ืคืื ืงืฆืืื ืื ืขืืกืง ืืืขืจืืช ืืืืืืื ืืื ืืืืื ืฉืืคืื ืฉื ืคืื ืงืฆืื ืืื, ืืืงืจื ืฉืื ื ืืชื ืืช ืืืชื ืื ืืกืืช ืืืืืงืืช ืืคืื ืงืฆืื. ืืฉื ื ืืกืคืจ ืฉืคืืช ืคืื ืงืฆืืื ืืืืช ืืืืฅ, ืืืฉืจ ืืคืืคืืืจืืืช ืืื ืคืืฆืืช ืืืืชืจ ืื Common Lisp, Scheme, Clojure, Wolfram Language, Erlang, Haskell ืืืืจืืช. ืืฉ ืื ืืกืคืจ ืฉืคืืช ืืชืืืืืช ืืชืื ืืช ืคืื ืงืฆืืื ืื ืื ืฉืืฉ ืืื ืืื ืชืืื ืืช ืืืืฉืืืช ืืืคืจืืืืื ืืื. C++, Python, Scala, PHP, Kotlin ื-Perl ืื ืืื ืืื. ืชืื ืืช ืคืื ืงืฆืืื ืื ืืฉืื ืืืื ืื ืืฉืคืืช ืืืขืืืช ืืฉืคืืช ืืืืืืืช ืืืจืืช, ืืื R ืืกืืืืกืืืงื, XQuery/XSLT ืขืืืจ XML, ืื J, K ื-Q ืื ืืชืื ืคืื ื ืกื.
ืืฉืืืืช OOP ืืชืื ืืช ืคืื ืงืฆืืื ืื
ืืืกืืจ ืืื ืื ืขืืจ ืืจืื, ื ืืื? ืืืื ื ื ืกื ืืืกืชืื ืขื ืื ืื ืงืืืช ืืื ืืกืืกืืช ืืืชืจ. ืืื ืืืจืืืืื ืืืกืืกืืื ืืขืืงืจืืื ืฉื ืื ืชืืื ืช ืืืฉื? ืื
ื ืชืื ืื (ืื ืฉืืืชืจ ืืชืืื ืืช ืืืขืช) ืืืชื ืืืืช
ืืชืืื ืชืช (ืื ืืืชืจ ืืขืฉืืช ืขื ืื ืชืื ืื ืืืื). ืื ืืืืื ืืขืืงืจื ืืืืคื ืฉืื OOP ื-FP ื ืืืฉืื ืืชืื ืืช ืืืฉื? ืืืื, ืืืจื ืฉืื OOP ืืฉืชืืฉืช ืืกืชืืืช ืขื ืฉืืืื ื ืชืื ืื ืืืชื ืืืืืืช ืืงืฉืืจืืช ืื ืชืื ืื ืืื ืืืงืื ืืื, ืื ืงืจื "ืืืืืืงื". ืฉืืืืฉ ืืืืืืืงืืื ืืืคืฉืจ ืืืชืื ืชืื ืืคืฉื ืืช ืืืคื ืคืขืืืช ืืชืืื ืืช ืฉืืื. ืชืื ืืช ืคืื ืงืฆืืื ืื ืืขืืืช ืืืช ืงืืืข ืื ื ืชืื ืื ืืืชื ืืืืช ืฆืจืืืื ืืืืฉืืจ ืฉื ื ืืืจืื ืฉืื ืื ืืื ืืืืืช ืืืคืจืืื ืืืื ืืืืืจืืช ืืืืืืช, ืืงืื ืืืืื ืืงืืืช ืืืืืืช ืืฉืืืืฉ ืืืืืจืช ืืงืื ืืืื ืืืชืจ.
ืืืืืื ืืื OOP ื-FP
ืืื ืืืคืื ืืช ืืืืืืื ืืื OOP ื-FP ืืจืืจืื ืืื ืืืคืฉืจ (ืืืืืจ ืืื ืงืฆืจ ืืืกืืช), ืืืื ื ื ืกื ืืคืจื ืืช ืืืืืืื ืืขืืงืจืืื ืืื ืฉืชื ืืคืจืืืืืืช ืืืื ืืื ืืืจ ืื.
1. ืืืฉื ืืืืืจื.
OOP ืืืืกืก ืขื ืืจืขืืื ืฉื ืืืืืืงืืื ืืกืื ื ืชืื ืื ืืืคืฉืืื ืฉื ืืฆืจื ืขื ืืื ืืคืชื, ืืืื ืืืืื ืืกืคืจ ืืืคืืื ืื ืืฉืืืืช, ืืืฃ ืขืฉืื ืืืืื ืืืืืืงืืื ืืืจืื. ืืืฉ ืืืืื ืฉื FP ืืื ืขื ืืขืจืืช ืคืื ืงืฆืืืช, ืืืฉืจ ืื ืคืื ืงืฆืื ืืืฆืขืช ืืฉืืื ืกืคืฆืืคืืช.
2. ืืกืืืืช ืืกืื.
ืืืื ืืื ืืกืืกืืื ื-OOP ืื ืืืืืืงืืื ืืฉืืืืช, ืืืฉืจ ื ืขืฉื ืฉืืืืฉ ืื ืชืื ืื ืื ืืชื ืื ืืฉืื ืื (ื ืืชื ืืฉื ืืช ืืืืจ ืืฆืืจืชื). ื-FP, ืคืื ืงืฆืืืช ืืืฉืชื ืื ืื ืืืจืืืืื ืืืกืืกืืื, ืืขืื ืฉืื ืชืื ืื ืืคืื ืงืฆืืืช ืชืืื ื ืืชื ืื ืืฉืื ืื (ืื ื ืืชื ืืฉื ืืชื ืืืืจ ืืฆืืจืชื).
3. ืืืื ืชืื ืืช.
OOP ืขืืงื ืืืจ ืืืื ืืชืื ืืช ืืืืืื. FP ืคืืขื ืืคื ืืืื ืืชืื ืืช ืืืฆืืจืชื.
4. ืชืื ืืช ืืงืืื.
OOP ืืื ื ืชืืื ืืชืื ืืช ืืงืืื. FP ืชืืื ืืชืื ืืช ืืงืืื.
5. ืฆื ืืฆืืจืืช ืืืืฆืืข.
ื-OOP, ืืฆืืจืืช ืฆืจืืืืช ืืขืงืื ืืืจ ืคืงืืื ืืืชืื ืืืืฉื ืฉืฆืืื ื ืืืื ืืืืฆืืข. ื-FP, ืืฆืืจืืช ืืื ื ืฆืจืืืืช ืืืฆืข ืฉืื ืกืืจ ืืกืืื ืืืื ืืืืฆืืข ืืื ืฉืื ืืฆืืืื.
6. ืืคืจืื ืืืฉื.
ืืฉืคืืช OOP ืืฉ ืฉืืืฉื ืืคืจืื ืืืฉื (ืืืืืช ืืคืชื ืฉืงืืืขืืช ืืช ืื ืืืฉืืช ืฉื ืืืืงืืช, ืฉืืืืช ืืืืจืื ืืืจืื): ืฆืืืืจื, ืคืจืื ืืืืื. ืืฉืคืืช ืืืืกืกืืช FP ืืื ืืคืจืื ืืืฉื.
7. ืืืืฉืืช ืืืืกืคืช ื ืชืื ืื/ืคืื ืงืฆืืืช.
ืืืืฉืืช ืืื ืืืช ืืืชืจืื ืืช ืืืืื ืฉื ืฉืคืืช OOP ืฉืื ืื ืืกืคืงืืช ืืจื ืงืื ืืืืกืืฃ ื ืชืื ืื ืืคืื ืงืฆืืืช ืืืฉืืช ืืชืืื ืืช ืืงืืืืช. ืขื ืฉืคืืช FP, ืืืกืคืช ืืืจืื ืืืฉืื ืืชืืื ืืืช ืฉืื ืืื ืคืืืช ื ืืื ืืืืจืืืช ืืืชืจ.
8. ืืกืชืจืช ื ืชืื ืื ืืืืืื.
ืืืืื ืืื ืืชืจืื ื ืืกืฃ ืฉื ืชืื ืืช ืืื ืื ืขืฆืืื ืฉืื ืฉืคืืช OOP ืชืืืืืช ืืืกืชืจืช ื ืชืื ืื, ืื ืฉืืืคืฉืจ ืืกืืคื ืฉื ืืืจ ืืืฆืืจ ืชืืื ืืืช ืืืืืืืืช. ืืืืจื ื ืขื ืืื ืฉ-Java ื ืืฉืืช ืืฉืคื ืืืืื (ืืื ืื ืืืืจื ื ืืื)
ืืืืืจ ื ืคืจื
, ืืื. ืขื ืชืื ืืช ืคืื ืงืฆืืื ืื, ืืกืชืจืช ื ืชืื ืื ืืื ื ืืคืฉืจืืช, ืืื ืืืฉืื ืืืื ืืืจืื ืื ืืชื ืืืคืฉ ืืคืชื ืชืืื ืืช ืืืืืืืช ืขื ืฉืคืช FP.
OOP ืืขืืืช FP. ืืืื ืืืชืจ ืืื?
ืื ืื ืคืจืืืืืช ืืชืื ืืช ืฉื OOP ืชืืื ืก ืืืืืง ื ืื FP, ืื ืืื ืื ืฆื? ืื ืฉืืื ืืืืื, ืืจืืจ. ืืื ืื ืื ืื ืืื, ืืืืื ืืืื ื ืืืืจืื ืขื ืื ืฉ-OOP ืืืขื ืืชืืช ืฉื FP (ืจืง ืืืื ืฉ-Java ื ืืฆืืช ืืฆืืืช ืฉื OOP). ืืืื ืืืืืืช, ืืื ืืื ืืืกืื ืื ืืช ืืืื ืืฉ ืืชืจืื ืืช ืืืกืจืื ืืช ืคืฉืืืื ืืืื. OOP ืืืืื ื ื ืคืืฅ ืืืชืจ ืืืืืื ืฉืืกืื ืื ืืื ืขืืื ืืจืื ืืืชืจ ืขืืืจ ืคืจืืืงืืื ืืืืืื ืืืืจืืืื. ืืืืืืงืืื ืืฉืืืืช ืืืจื ืืื ืืืื ืื ืืงืืืช, ืื ืฉืืืคื ืืช ืชืื ืืช OOP ืืงื ืืืกืืช ืืฉืืืื ืืคืืื ืืืชืืืืื ืฉืืืื. ืืืืคื ืืืื, ืชืื ืืช ืืื ืื ืขืฆืืื ืขืืื ืืืฉ ืืื ืืคืืชืื ืืืืืจื, ืืืืืื ืฉืืืฉืจ ืืชื ืขืืื ืขื ืคื ื ืืกืคืจ ืืขืจืืืช ืืคืืืคืืจืืืช ืฉืื ืืช, OOP ืืืคืฉืจ ืื ืืืจืื ืืื (ืืืืืืืงื) ืืืฉืืืจ ืขืืื ืืืืืื ืืื ืืืจื ืื ืืืจืฉื. ืฉืืืืฉ ืืืืจ ืืงืื ื ืืื ืืืชืจ ืืชืืคืขืืช ืืืืื ืืืฉืคืขืืช ืืืชื ืฆืคืืืืช ืคืืื ืฆืืืืืืช ืขื ืชืืืืืื ืฉืขืฉืืืืช ืืืืืช ืืงืื OOP, ืื ืืื ืืืกืจืื ืืช ืืขืืงืจืืื ืฉื ืืืื ื-OOP. ืชืื ืืช ืคืื ืงืฆืืื ืื, ืืขืืืช ืืืช, ืืื ืืืฉืจ ืืืืจืืืืช ืืืืืช ืืืฆืืื ืช, ืื ืฉื ืืชื ืืืฉืชืืฉ ื-FP ืืขืชืื ืงืจืืืืช ืืคืืชืื ืืงืฆื ืฉืื ืงืื ื ืงื ืืคืื ืงืฆืืืช ืฉืงืืคืืช ืืฉืืืืช ืืืชืจ, ืื ืฉืืืคืฉืจ ืื ืืืฉืื ืืืฆืืขืื ืืืื ืื ืืื ืชืืคืขืืช ืืืืื ืืืชื ืฆืคืืืืช . ืืฉืืืืืจ ืืคืืชืื ืืขืจืืืช ืืืจืืืืช ืฉืขืฉืืืืช ืืืืืงืง ืืฉืื ืื ืงื ื ืืืื ื ืจืื, FP ืคืืืช ืืขืื ืืืฉืื ืืืฉืืืื ื-OOP.
GO TO FULL VERSION