Truyện ngắn: Một người đưa thư được yêu cầu về nhà sau khi nhận nhà và nhận bìa chứa (thư, tài liệu, séc, thẻ quà tặng, đơn, thư tình) với địa chỉ ghi trên đó để gửi.
Giả sử không có vỏ bọc và yêu cầu người đưa thư về nhà sau khi nhận nhà và nhận tất cả mọi thứ và giao cho người khác, người đưa thư có thể bị nhầm lẫn.
Vì vậy, tốt hơn nên bọc nó bằng bìa (trong câu chuyện của chúng tôi đó là giao diện) sau đó anh ta sẽ làm tốt công việc của mình.
Bây giờ công việc của người đưa thư là chỉ nhận và giao bìa (anh ta sẽ không làm phiền những gì bên trong trang bìa).
Tạo một loại interface
không thực tế, nhưng thực hiện nó với loại thực tế.
Để tạo giao diện có nghĩa là các thành phần của bạn dễ dàng lấy Fit vào phần còn lại của mã
Tôi cho bạn một ví dụ.
bạn có giao diện AirPlane như dưới đây.
interface Airplane{
parkPlane();
servicePlane();
}
Giả sử bạn có các phương thức trong lớp Máy bay điều khiển của bạn như
parkPlane(Airplane plane)
và
servicePlane(Airplane plane)
thực hiện trong chương trình của bạn. Nó sẽ không BREAK mã của bạn. Ý tôi là, nó không cần phải thay đổi miễn là nó chấp nhận các đối số nhưAirPlane
.
Bởi vì nó sẽ chấp nhận bất kỳ trên máy bay mặc dù loại thực tế, flyer
, highflyr
,fighter
vv
Ngoài ra, trong một bộ sưu tập:
List<Airplane> plane;
// Sẽ lấy tất cả các máy bay của bạn.
Ví dụ sau đây sẽ làm rõ sự hiểu biết của bạn.
Bạn có một máy bay chiến đấu thực hiện nó, vì vậy
public class Fighter implements Airplane {
public void parkPlane(){
// Specific implementations for fighter plane to park
}
public void servicePlane(){
// Specific implementatoins for fighter plane to service.
}
}
Điều tương tự đối với HighFlyer và các clasess khác:
public class HighFlyer implements Airplane {
public void parkPlane(){
// Specific implementations for HighFlyer plane to park
}
public void servicePlane(){
// specific implementatoins for HighFlyer plane to service.
}
}
Bây giờ nghĩ rằng các lớp điều khiển của bạn sử dụng AirPlane
nhiều lần,
Giả sử lớp Trình điều khiển của bạn là ControlPlane như bên dưới,
public Class ControlPlane{
AirPlane plane;
// so much method with AirPlane reference are used here...
}
Ở đây phép thuật xuất hiện khi bạn có thể tạo ra các thể hiện AirPlane
kiểu mới bao nhiêu tùy ý và bạn không thay đổi mã ControlPlane
lớp.
Bạn có thể thêm một ví dụ ...
JumboJetPlane // implementing AirPlane interface.
AirBus // implementing AirPlane interface.
Bạn cũng có thể loại bỏ các trường hợp của các loại được tạo trước đó.