Fields, Properties, Methods và Events, nguyên tắc Encapsulation

Một phần của tài liệu Giáo trình Lập trình mạng nâng cao hướng.NET (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề (Trang 45 - 47)

được gọi là Field có thể được đọc/viết trực tiếp. Cịn Kiểu tóc (dài, ngắn, màu đen, có sọc nâu ...), Giọng hát (cao, trầm, ..). là những Properties. Chúng cũng giống như Field nhưng được implemented (thi hành) bằng cách dùng procedures Property Get và Property Set. Property Set có thể được coded để kiểm sốt nếu "Kiểu tóc" khơng thích hợp thì sẽ bị loại bỏ. Ngược lại, nếu "Kiểu tóc" thích hợp và được áp dụng thì ta sẽ thấy kết quả ngay là CaSĩ lại đẹp thêm ra. Thường thường Fields và Properties là các Danh từ (Nouns).

Một CaSĩ có khả năng ĐơnCa, KýTênLưuNiệm, TrìnhDiễn. Ta gọi đó là những Methods mà ta implemented bằng Subs và Functions (thí dụ như Function KýTênLưuNiệm sẽ return một chữ ký). Thường thường Methods là những Động từ (Verbs)

Đối với code bên trong Class thì Property giống như một Method còn đối với Client (tức là program đang dùng Class) thì Property giống như Field.

Đơi khi, nếu trình diễn lâu, CaSĩ cần một ly nước. CaSĩ sẽ Raise Event KhátNước để nhân viên trong hậu trường phục vụ.

Ta gọi chung Fields, Properties, Methods và Events là những Class Members (Các Thành viên

của Class)

Có một ngoại lệ về sự khác biệt giữ Class và Member, đó là khi ta dùng các Shared Class

Members của một Class thì ta khơng nhất thiết phải instantiate một Object. Ta có thể dùng

thẳng tên của Class như một Object.

Cái lợi điểm của Object Oriented Programming là ta có thể gói tất cả những đặc điểm, khả năng của một Class vào trong một Unit of Code (Đơn vị mã) tự túc. Khi chúng ta lịch sự yêu cầu thì CaSĩ ĐơnCa. Ta biết CaSĩ ca thì thu hút lịng người, nhưng ta khơng cần biết làm sao CaSĩ đạt đến trình độ như vậy. Đó khơng phải là chuyện để chúng ta quan tâm.

Đối với ta Class CaSĩ là một Black Box, ta khơng biết và khơng cần biết chuyện gì xãy ra bên trong. Nếu sau nầy CaSĩ thay đổi kỹ thuật đơn ca để hát dễ và hay hơn, điều đó khơng ảnh hưởng gì đến chúng ta. Đặc tính OO ấy gọi là Encapsulation (Gói kín).

hình 3.2 :Encapsulation (Gói kín).

Cách ta lập trình với Class chỉ khác cách ta lập trình trước đây một chút thơi. Nếu trước đây ta phải tự làm, thì bây giờ ta instantiate một Object của Class chuyên trị những chuyện ta muốn làm, rồi bảo nó làm cho ta. So với ngồi đời, thí dụ bạn có mở một tiệm photocopy. Sau một năm bạn tự trơng coi, cơng chuyện làm ăn ổn định và có kết quả tốt. Bạn muốn mở thêm một tiệm photocopy nữa ở chỗ khác. Trước khi đi lo chỗ khác bạn huấn luyện nghề photocopy cho

một người làm công trung thành, rồi giao cho người ấy làm quản lý để thay thế bạn. Người đó là mơt Object của Class QuảnLýTiệmPhotoCopy.

Trở lại cách lập trình, những cơng việc bạn làm hằng ngày trong tiệm photocopy là những

Methods. Tất cả đồ đạc, sổ sách của tiệm là những Properties. Bạn đã sắp đặt mỗi tuần phải

gọi người lại quét dọn tiệm, mỗi tháng phải bảo trì các máy photocopiers, đó là những Events. Bây giờ bạn gói tất cả những thứ ấy lại thành Class QuảnLýTiệmPhotoCopy. Lần đầu bạn instantiate Class QuảnLýTiệmPhotoCopy làm thành ChúTưThông, người sẽ thay thế bạn làm quản lý tiệm photocopy đầu tiên. Khi bạn muốn mở thêm tiệm thứ ba, bạn sẽ instantiate Class QuảnLýTiệmPhotoCopy một lần nữa làm thành DìSáuHương , người sẽ thay thế bạn làm quản lý tiệm photocopy thứ nhì.

Khi đã phân chia trách nhiệm các phần code thành những Class, bạn có thể tập trung tư tưởng vào từng Class một, không cần phải cố nhớ mọi thứ trong đầu khi giải quyết chuyện gì. Vì code của Class nào chỉ làm việc và ảnh hưởng trong phạm vi hoạt động của nó, khơng đụng chạm đến ai khác. Nếu có gì trục trặc, thường thường ta có thể xác định đó là lỗi của Class nào tương đối dễ dàng.

Có một câu hỏi đùa rằng theo phương pháp OO thì: "Thay một bóng đèn cần bao nhiêu programmers?". Đáp: "Không cần programmer nào hết, bạn bảo đèn tự thay bóng của nó." (Lời đáp khác: "Khơng cần programmer nào hết, Microsoft đã đổi tiêu chuẩn ra bóng đêm.")

Do đó, nếu trước kia bạn lập trình để tự mình lo liệu cơng chuyện thì bây giờ hãy giao cho các Objects tự lo cho chúng. Tức là trước đây, nếu bạn là chủ điền mỗi năm bạn phải đi góp lúa ruộng, thì bây giờ bạn bảo các tá điền phải tự đem nộp lúa vào trong kho cho bạn. Sướng khơng? Chỉ ở trong thế giới lập trình OO, ta mới có thể mơ mộng như vậy.

Inheritance (Thừa Kế)

Một phần của tài liệu Giáo trình Lập trình mạng nâng cao hướng.NET (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề (Trang 45 - 47)