Bắt đầu với Interfaces trong PHP

Bài viết được post tại: http://portal.daynhauhoc.com/p/bat-dau-voi-interfaces-trong-php/

PHP Interfaces vẫn còn khá mới mẽ đối với các bạn mới tiếp xúc với PHP. Mình có một ví dụ về việc sử dụng PHP Interfaces: <?php // khai báo Interface interface studentInterfaces { public function learn(array $student, $subject); } interface classesInterface { public function notify(array $student,…… xem thêm bài viết

2 Likes

Thảo luận 1 chút nhỉ, tại sao lai phải sử dụng interface?

1 Like

interface như là một bản thiết kế mẫu, khai báo cấu tạo, bố cục bất kì. Và các class implements nó thì bắt buộc phải có các phương thức và thuộc tính của interface. Cái này là một trong những ứng dụng của kỹ thuật lập trình Design Pattern.

confusing ???

Interface được sử dụng trong lập trình hướng đối tượng, là một lớp rỗng chỉ chứa khai báo về tên phương thức không có khai báo về thuộc tính hay thứ gì khác và các phương thức này cũng là rỗng
(trích từ bài viết http://portal.daynhauhoc.com/p/bat-dau-voi-interfaces-trong-php/)

Về phần này:

Cái này là một trong những ứng dụng của kỹ thuật lập trình Design Pattern

Nếu mà nói design pattern và interface có những phần liên quan và bổ trợ lẫn nhau nghe sẽ đúng hơn.
Design pattern là các mẫu thiết kế ra đời để xử lý 1 vấn đề nào đó của chưong trình và nó có thể sử dụng interface trong mẫu thiết kế hoặc là không.

Bạn nói “interface như là một bản thiết kế mẫu” là đúng tuy nhiên ý nghĩa của nó còn hay hơn nữa và không chỉ dừng lại ở việc tạo ra một quy tắc/rule bắt buộc các class implements nó phải tuân theo.

2 Likes

Mình có cuốn ebook về PHP 5 OOP bảo interface là 1 quy trình của Design pattern. :smiley: còn cái ý nghĩ thì mình đọc nó chỉ ghi là thiết kế thôi :expressionless: Đọc trúng sách lõm rồi.

Nếu có thể bạn trích dẫn dùm tên sách đầy đủ và nội dung dòng bao nhiêu để mọi người tiện tham khảo. Có thể sách đang nói đến 1 khía cạnh nào đó khác chăng?

Một ví dụ đơn giản Singleton Design Pattern, để implements nó chúng ta chỉ cần có 1 class chứa thiết kế singleton, sau đó gọi và sử dụng. Không cần dùng 1 chút nào về interface cả.

Interface và design pattern thực sự có rất nhiều liên kết mật thiết. Và trong thiết kế OOP thì có 1 nguyên tắc như sau:
“Program to an interface, not an implementation”

2 Likes

eBOOK PHP 5 OOP , chăng có tên tác giả. Do collect trên mạng về. Có câu như thế này:

Interfaces is a designed template for class in php. Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled.

@manhapt cho mình một ví dụ về tính thân mật của nó đi :smiley:

interface OutputInterface {
    public function write();
}

class CSVOutput implements OutputInterface {

    public function write() {
        return "CSV";
    }
}

class JsonOutput implements OutputInterface {
    
    public function write() {
        return "Json";
    }
}

class XmlOutput implements OutputInterface {
    
    public function write() {
        return "Xml";
    }
}

class Writer {
    
    public function makeDocument(OutputInterface $output) {
        return $output->write();
    }
}

$writer = new Writer;
$writer->makeDocument(new CSVOutput);
$writer->makeDocument(new JsonOutput);
$writer->makeDocument(new XmlOutput);
1 Like

Interfaces is a designed template for class in php. Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled.

Đoạn này nó có đả động gì đến design patterns đâu?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?