Bài 09: Tính trừu tượng hóa dữ liệu

PHP nâng cao 21/01/2017 10:24 775
Tính trừu tượng (abstraction) trong lập trình hướng đối tượng giúp giảm sự phức tạp thông qua việc tập trung vào các đặc điểm trọng yếu hơn là đi sâu vào chi tiết.

Ví dụ khi một lập trình viên tạo một lớp (class) dùng đại diên cho các tài khoản tiền gửi ngân hàng của các khách hàng và đặt tên cho lớp này là BankAccount. Lớp này có hai thuộc tính là $balance và $interest dùng để lưu dữ liệu số tiền dư và lãi suất tiền gửi của tài khoản.

class BankAccount {
    public $balance;
    public $interest;
}
Tiếp theo lập trình viên này thêm các phương thức gửi tiền (deposit) và rút tiền (withdraw) như sau:
class BankAccount {
    public $balance; // số dư tài khoản
    public $interest; // lãi suất

    public function deposit ($amount) {
    // code...
    }

    public function withdraw ($amount) {
    // code...
    }
}

Với tính trừu tượng (abstraction) thì toàn bộ sự phức tạp của việc xử lý quá trình gửi tiền và rút tiền sẽ được thực hiện trong 2 phương thức deposit và withdraw. Các lập trình viên không cần phải quan tâm tới sự phức tạp (hay nội dung chi tiết) của việc xử lý các công việc gửi tiền và rút tiền trên mà chỉ cần biết mục đích của từng phương thức là gì.

 

Dưới đây là một cách thực hiện (implementation) của phương thức deposit:

// nạp tiền vào tài khoản
public function deposit ($amount) {
    if ($amount < 50000) { // số tiền nạp vào dưới mức tối thiểu 50 ngàn
        return "Error! The minimum amount is 50";
    }
    if ($amount  > 100000000) { // tài khoản này cho phép nạp tối đa 100 triệu một lần
        return "Error! You exceed the maximum amount, please upgrade your account";
    }
    $balance += $amount; // tăng số dư tài khoản
}

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.