01/10/2018, 11:27

Sự cần thiết của các mức truy cập Private và Public

Cho em hỏi ngu một câu ạ là tại sao cần chia rõ ràng các mức truy nhập như Public, Private để các đối tượng khác nhau không thể xâm phạm dễ dàng dữ liệu của nhau ạ, Trong khi bản thân mình là người lập trình và tạo ứng dụng ạ.

Kevin viết 13:34 ngày 01/10/2018

Bởi vì bạn ko phải là người duy nhất lập trình trong team

Kevin viết 13:36 ngày 01/10/2018

Giỡn chớ private public là một phần của design, OOP nó cho phép thay đổi giá trị của biến cho nên một số hàm chạy ko còn đúng nữa nếu như tham số bạn đã thay đổi trước đó, nên cần có những từ khóa này ngăn chặn hành vi vượt quá giới hạn của bản thân cũng như các mems khác trong team. Bên FP pure hình như toàn bộ đều là immutable hết nên ko cần đúng ko ta ? bạn nào hay code FP confirm giúp

Quan viết 13:40 ngày 01/10/2018

Khi bạn lập trình ở mức module thì việc thay đổi requiment sẽ dễ dàng hơn. Ví dụ khi cần nâng cấp tính năng hoặc là thay đổi, viết thêm những cái có sẵn. Việc để riêng khiến cho phần mềm mềm dẻo linh hoạt hơn và có thể tái sử dụng.

Trần Hoàn viết 13:37 ngày 01/10/2018

Ngay cả khi không làm theo team, việc phân biệt mức truy cập cũng có một vài cái lợi:

  1. IDE chỉ hiện những phương thức cần thiết, thay vì hiện quá nhiều, khó chọn:


  2. Việc chỉnh sửa thông qua các phương thức public giúp kiểm soát dữ liệu đầu vào, tăng tính tự động hoá
    Ví dụ bạn có class PhanSo với các thuộc tính TuSo, MauSo, phương thức RutGon(). Nếu bạn nhập TuSo và MauSo bằng việc thay đổi giá trị thuộc tính thì bạn phải tiếp tục chạy phương thức RutGon(). Trong khi nếu đưa phương thức RutGon() vào trong phương thức getTuSo() và getMauSo() thì không cần phải thực hiện thao tác rút gọn, cũng như nhiều thao tác kiểm tra giới hạn input…

Hung viết 13:43 ngày 01/10/2018

FP cũng có private nhưng cơ chế khác, gọi là module. Mỗi module cần khai báo danh sách các function được export, property là trường hợp hàm không có tham số. Module giống như Java package (C# namespace) và class.

Nếu so sánh với class thì hàm export là public method (hoặc public property với hàm không tham số). Hàm không export là private method.

Nếu so sánh với package thì các class mặc định export hoàn toàn. Bên FP chỉ các hàm nào được khi báo export mới được truy xuất bởi module khác.

Văn Dương viết 13:39 ngày 01/10/2018

Vợ và tiền mà public thì bm rồi

Nguyen Ca viết 13:37 ngày 01/10/2018

Nó cho thấy em có hiểu những gì em đang làm không, vị dụ cái mã hóa đơn chỉ cho tạo khi đối tượng mới được tạo, nếu cho set tùy ý thì vớ vẫn lắm.

Nguyễn Quốc Hoàng viết 13:38 ngày 01/10/2018

Giả sử bạn lập trình một hàm nhập ngày, tháng, năm. Nếu như không có các mức truy cập đó thì bạn có thể trực tiếp sửa giá trị ngày, tháng, năm mà không có kiểm tra ràng buộc, tuy nhiên nếu ta thiết đặt các thuộc tính ngày, tháng, năm kia ở chế độ private và chỉ được thay đổi thông qua các phương thức do chính ta code và để ở chế độ public thì sẽ an toàn hơn. Hơn nữa, khi tạo ra ứng dụng, bạn không hẳn là làm một mình, cho nên việc đóng gói dữ liệu là rất cần thiết

Bài liên quan
0