CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này có giải thích chi tiết về cách sử dụng các giao diện trong PHP được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.
Thật vậy, giao diện PHP có mục đích riêng của chúng.
Chúng là những hợp đồng, một cẩm nang hướng dẫn cho các nhà phát triển khác. Tuy nhiên, vẫn còn khó hiểu giao diện này dùng để làm gì.
Căn cứ.
Giao diện là các lớp trừu tượng không thể khởi tạo trực tiếp nhưng có thể được triển khai.
Đây là một ví dụ cơ bản.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
giao diện
Giao diện của tôi {
công cộng
chức năng
setName(chuỗi
$tên
);
công cộng
chức năng
lấy Tên();
}
lớp học
Lớp học của tôi
thực hiện
Giao diện của tôi {
riêng tư
$tên
;
công cộng
chức năng
setName(chuỗi
$tên
) {
$cái này
->tên =
$tên
;
}
công cộng
chức năng
lấy Tên() {
trở lại
$cái này
->tên;
}
}
|
MyClass phải triển khai các phương thức setName() và getName(). Nếu không làm điều này, bạn sẽ gặp phải những lỗi nghiêm trọng.
Lỗi nghiêm trọng: Lớp MyClass chứa 2 phương thức trừu tượng và do đó phải được khai báo là trừu tượng hoặc triển khai các phương thức còn lại (MyInterface::setName, MyInterface::getName) 。
Ngoài ra, khả năng truy cập của các phương thức được xác định trong giao diện phải ở chế độ công khai và các thành viên lớp không thể được xác định trong giao diện.
lý do.
Các nhà phát triển sử dụng giao diện để mô tả hành vi chung của một lớp hoặc một nhóm lớp.
Nhưng tại sao nó chỉ chịu trách nhiệm đóng gói triển khai mà không chịu trách nhiệm xử lý chi tiết từng lớp?
Để tách rời! .
Giao diện cho phép bạn thay đổi cách triển khai mà không thay đổi chi tiết, tức là cách bạn sử dụng cách triển khai này.
Ví dụ nâng cao hơn.
Bất kỳ hệ thống bộ nhớ đệm nào cũng yêu cầu các khả năng sau.
- Lưu trữ/đặt nội dung trong bộ đệm
- Lấy nội dung của bộ đệm
- Xóa nội dung khỏi bộ đệm
Dựa trên điều này, chúng ta có thể tạo giao diện bộ đệm sau.
?
1
2
3
4
5
|
giao diện
Giao diện bộ đệm {
công cộng
chức năng
đặt(chuỗi
$chìa khóa
,
$giá trị
);
công cộng
chức năng
lấy(chuỗi
$chìa khóa
);
công cộng
chức năng
delete
(sợi dây
$chìa khóa
);
}
|
Bằng cách này, các nhà phát triển có thể biết rằng họ cần triển khai giao diện bộ nhớ đệm, nhưng chúng ta không cần biết cách triển khai nó. Kết quả là chúng ta có thể dễ dàng chuyển đổi hệ thống bộ đệm mà không cần thay đổi cách sử dụng chúng.
Do đó, có thể dễ dàng thay đổi hệ thống bộ đệm mà không thay đổi cách sử dụng nó trong dự án.
Ví dụ về Symfony.
Hãy xem ứng dụng cụ thể của ví dụ vừa đưa ra. Đối với Symfony, nếu bạn muốn triển khai bất kỳ hệ thống bộ đệm nào, cách tốt nhất là thực hiện như sau.
?
1
2
3
4
5
6
7
8
9
|
sử dụng
Symfony\Contracts\Cache\CacheInterface;
lớp học
Lớp học của tôi {
riêng tư
$bộ nhớ đệm
;
công cộng
chức năng
__construct(Giao diện bộ nhớ đệm
$bộ nhớ đệm
)
{
$cái này
->bộ nhớ đệm =
$bộ nhớ đệm
;
}
}
|
Thông qua việc nội xạ phụ thuộc, giao diện bộ nhớ đệm sẽ được đưa vào lớp của chúng ta. Lần tới khi chúng ta sửa đổi hệ thống bộ đệm, lớp MyClass không cần thực hiện bất kỳ thay đổi nào.
Nhiều triển khai so với nhiều kế thừa.
PHP không hỗ trợ đa kế thừa nên phương pháp sau đây không thể thực hiện được.
?
1
|
lớp học
Lớp học của tôi
mở rộng
Lớp X, Lớp Y {}
|
Một phần lý do điều này không được phép là do vấn đề Diamond.
Tuy nhiên, bạn có thể làm điều này.
?
1
2
|
lớp học
Lớp Y
mở rộng
Lớp X {}
lớp học
Lớp học của tôi
mở rộng
LớpY {}
|
Nhưng ClassX và ClassY có thể xử lý những việc khác nhau, vì vậy việc sử dụng tính kế thừa không có ý nghĩa gì.
Nếu bạn muốn thực hiện nhiều hành vi thì bạn có thể có nhiều giao diện.
?
1
|
lớp học
Lớp học của tôi
thực hiện
Giao diệnX, Giao diệnY {}
|
Nói cách khác, bạn có thể yêu cầu các lớp chia sẻ một số chức năng mà không cần chia sẻ lớp cha.
Tóm tắt.
Giao diện PHP là các mẫu phương thức cho các lớp, rất hữu ích cho việc tách rời việc triển khai và sử dụng.
Tính năng này đặc biệt hữu ích khi bạn cần duy trì tính linh hoạt và đảm bảo rằng tất cả các nhà phát triển đều tuân theo một bộ quy tắc.
Đến đây là kết thúc bài viết về cách sử dụng giao diện trong PHP. Để biết thêm thông tin về cách sử dụng giao diện trong PHP, vui lòng tìm kiếm các bài viết trước của tôi hoặc tiếp tục duyệt các bài viết liên quan bên dưới. Tôi hy vọng bạn sẽ ủng hộ tôi trong tương lai! .
Liên kết gốc: https://www.cnblogs.com/it-abu/p/13372959.html.
Cuối cùng, bài viết này về giải thích chi tiết về việc sử dụng giao diện trong PHP kết thúc ở đây. Nếu bạn muốn biết thêm về giải thích chi tiết về việc sử dụng giao diện trong PHP, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. bạn sẽ hỗ trợ nó trong tương lai blog của tôi! .
Tôi là một lập trình viên xuất sắc, rất giỏi!