L? trnh L?p trnh H??ng ??i t??ng (OOP)

T? khi ni?m c? b?n ??n cc nguyn l thi?t k? nng cao ?? xy d?ng ph?n m?m chuyn nghi?p.

Trở về lộ trình
Giai ?o?n Ch? ?? chnh N?i dung & Ho?t ??ng h?c t?p M?c tiu & S?n ph?m
1. Nh?p mn Gi?i thi?u v? OOP
  • OOP l g? T?i sao nn s? d?ng?
  • So snh v?i L?p trnh Th? t?c (Procedural Programming).
  • T?ng quan 4 Tr? c?t c?a OOP.
  • Hi?u r m?c ?ch v l?i ch c?a OOP.
  • Phn bi?t ???c t? duy l?p trnh h??ng ??i t??ng.
2. C?t li L?p (Class) v ??i t??ng (Object)
  • L?p l b?n thi?t k? (Blueprint), ??i t??ng l m?t th? hi?n (Instance).
  • Thu?c tnh (Attributes) v Ph??ng th?c (Methods).
  • Hm t?o (Constructor) v Hm h?y (Destructor).
  • ??nh ngh?a cc l?p, khai bo thu?c tnh, ph??ng th?c.
  • T?o v qu?n l cc ??i t??ng t? l?p.
3. Tr? c?t 1 & 2 ?ng gi & K? th?a
  • ?ng gi (Encapsulation): Public, Private, Protected; Getters & Setters.
  • K? th?a (Inheritance): L?p cha (Base), L?p con (Derived); Ghi ? ph??ng th?c (Method Overriding).
  • p d?ng cc m?c truy c?p ?? che gi?u d? li?u.
  • Xy d?ng h? th?ng phn c?p l?p ?? ti s? d?ng m.
4. Tr? c?t 3 & 4 ?a hnh & Tr?u t??ng
  • ?a hnh (Polymorphism): T?nh (Compile-time) v ??ng (Run-time).
  • Tr?u t??ng (Abstraction): L?p tr?u t??ng (Abstract Class) v Giao di?n (Interface).
  • Vi?t m linh ho?t h?n v?i ?a hnh.
  • Thi?t k? cc h?p ??ng (contracts) b?ng interface.
5. Nng cao Quan h? & Thnh ph?n
  • Composition vs. Inheritance.
  • Association, Aggregation, Composition.
  • Thnh vin t?nh (Static Members).
  • Hi?u v l?a ch?n ?ng m?i quan h? gi?a cc l?p.
  • S? d?ng thnh vin t?nh cho d? li?u/ph??ng th?c chung.
6. Thi?t k? Nguyn l SOLID & M?u thi?t k?
  • Nghin c?u 5 nguyn l SOLID.
  • Tm hi?u v? cc M?u Thi?t k? (Design Patterns) ph? bi?n: Creational, Structural, Behavioral.
  • Vi?t m d? b?o tr, m? r?ng v d? hi?u h?n.
  • p d?ng cc gi?i php ? ???c ki?m ch?ng cho cc v?n ?? thi?t k?.
7. Th?c hnh ?ng d?ng th?c t?
  • p d?ng t?t c? ki?n th?c vo m?t d? n nh? (v d?: h? th?ng qu?n l th? vi?n, game ??n gi?n).
  • Ti c?u trc (Refactoring) m ngu?n c? theo nguyn t?c OOP.
  • H?c cch v? S? ?? l?p UML (UML Class Diagram).
  • Xy d?ng m?t d? n hon ch?nh s? d?ng OOP.
  • C kh? n?ng ??c v thi?t k? ki?n trc ph?n m?m c? b?n.

T? duy C?t li trong OOP

1. T? duy theo ??i t??ng

Chuy?n t? danh sch cc th? t?c sang m?t th? gi?i c?a cc ??i t??ng t??ng tc. M hnh ha cc th?c th? trong th? gi?i th?c b?ng tr?ng thi (thu?c tnh) v hnh vi (ph??ng th?c) c?a ring chng.

2. G?n k?t cao, Kh?p n?i th?p

Thi?t k? cc l?p t?p trung vo m?t trch nhi?m duy nh?t (g?n k?t cao) v gi?m thi?u s? ph? thu?c c?a chng vo cc l?p khc (kh?p n?i th?p) ?? m ngu?n m?nh m? v d? b?o tr h?n.

3. ?u tin Composition h?n K? th?a

Tr??c khi t?o m?t h? th?ng phn c?p cha-con c?ng nh?c, hy xem xt li?u vi?c xy d?ng m?t l?p b?ng cch l?p rp cc l?p khc, ??n gi?n h?n c d?n ??n m?t thi?t k? linh ho?t v ti s? d?ng h?n khng.

4. L?p trnh theo Interface, khng theo Implementation

Ph? thu?c vo cc khi ni?m tr?u t??ng (interfaces, l?p tr?u t??ng) thay v cc l?p c? th?. ?i?u ny lm cho h? th?ng c?a b?n c th? thch ?ng v?i nh?ng thay ??i trong t??ng lai v cc yu c?u m?i.