Học lập trình đối tượng PHP tìm hiểu về mô hình trừu tượng PHP

Thảo luận trong 'Rao Vặt Toàn Quốc' bắt đầu bởi datecom, 1/9/15.

  1. datecom

    datecom Thành Viên Mới

    Tham gia ngày:
    10/7/15
    Bài viết:
    35
    Đã được thích:
    0
    Điểm thành tích:
    6
    ITseovn: Trung tâm đào tạo lập trình viên PHP từ cơ bản tới nâng cao tại Vietpro: Phân tích và tìm hiểu về mô hình trừu tượng
    Sau loạt bài về kiến thức cơ bản như tìm hiểu khái niệm, phương thức magic, sự kế thừa, các quy tắc chung. Trong bài này, chúng ta sẽ tiếp tục mở rộng các kiến thức trong lập trình hướng đối tượng. Cụ thể, chúng ta sẽ cùng phân tích và tím hiểu về hoc php co ban mô hình trừu tượng trong hướng đối tượng.


    Phương thức và lớp trừu tượng PHP:

    Lớp trừu tượng là lớp sẽ chứa các phương thức trừu tượng. Và các lớp kế thừa lớp trừu tượng sẽ phải định nghĩa các phương thức trừu tượng ấy. Để tuân thủ một ràng buộc về mặt tổ chức của mô hình trừu tượng.

    Để định nghĩa một lớp, một phương thức là trừu tượng ta có cú pháp:


    <?php
    abstractclassABC{
    abstractfunctiontest();
    }
    ?>


    Lúc này có thể hiểu rằng, lớp ABC được gọi là lớp trừu tượng và phương thức test() được gọi là phương thức trừu tượng.

    Khi đó, một lớp muốn sử dụng lớp trừu tượng, ta sẽ có cú pháp extends để kế thừa.


    <?php
    abstractclassABC{
    abstractfunctiontest();
    }

    classBCDextendsABC{
    publicfunctiontest(){
    //Thực thi mã lệnh
    }

    }
    ?>
    Sự trừu tượng có thể được hiểu đơn giản như sau:

    Giả sử, kiến trúc để xây dựng 1 chiếc xe sẽ bao gồm: Bánh xe, yên xe, thắng.

    Như vậy, những mô hình xe máy, xe đạp, xe hơi cũng được gọi là xe khi chúng thỏa mãn những yếu tố hoc photoshop co ban mà kiến trúc một chiếc xe quy định.

    Diễn giải lại điều ở trên bằng hình ảnh để thấy rõ điều đó:

    [​IMG]
    Qua biểu đồ này chúng ta thầy rằng, khi chiếc xe đạp, xe máy, xe hơi kế thừa mô hình xe. Nó sẽ phải định nghĩa 3 phương thức trừu tượng là banhxe(), yenxe(),thangxe(). Dù rằng ở mỗi thể loại xe đều có những đặc thù riêng biệt.

    Như vậy có thể hiểu, mô hình trừu tượng trong thực tế được sử dụng để quản lý mô hình mã nguồn. Nó định ra một quy định cơ bản, và yêu cầu bất kể một lớp nào, hoặc phương thức nào khi muốn làm việc với nó, thì buộc phải định nghĩa theo các quy tắc mà nó đã đặt ra. Nhằm đảm bảo tính nhất quán và dễ kiểm soát mã nguồn hơn đối với các dự án có quy mô lớn và phức tạp.

    Tuy nhiên, vì lớp trừu tượng vẫn được xem là một lớp. Thế nên, ngoài chức năng quy định lớp trừu tượng ra, thì nó vẫn có thể khởi tạo các thuộc tính hoặc phương thức khác để phục vụ cho việc sử dụng của những phương thức kế thừa nó.

    Một ví dụ về việc sử dụng mô hình lớp trừu tượng:


    <?php
    abstractclassemployee{
    protected$empname;
    protected$empage;
    publicfunctionsetdata($empname,$empage){
    $this->empname=$empname;
    $this->empage=$empage;
    }
    abstractfunctionoutputData();
    }
    classEmployeeDataextendsemployee{
    publicfunction__construct($name,$age){
    $this->setdata($name,$age);
    }
    functionoutputData(){
    echo$this->empname;
    echo$this->empage;
    }
    }
    $a=newEmployeeData("Hitesh","24");
    $a->outputData();
    ?>


    Giao diện trong hướng đối tượng.


    Một khái niệm nữa được đưa vào mô hình hướng đối tượng là Giao diện. Giao diện cũng mang nguyên tắc của mô hình trừu tượng. Nhưng điểm khác biệt ở đây là với giao diện, chúng ta có thể cho phép một lớp lap trinh android co ban sử dụng linh động giữa một hoặc nhiều giao diện cùng lúc.


    Để khai báo giao diện ta có:


    <?php
    interfaceanimal{
    functionsound();
    }
    interfacebenefits{
    functionprotect()
    }
    ?>


    Và để một lớp sử dụng một hoặc nhiều giao diện ta sẽ có:

    <?php
    classABC implementsanimal,benefits{
    publicfunctionsound(){
    //Thực thi mã lệnh
    }
    publicfunctionprotect(){
    //Thực thi mã lệnh
    }
    }
    ?>


    Có thể hiểu một cách đơn giản rằng, giao diện đem lại sự tùy chọn đầy đủ hơn. Nó cho phép, một lớp có thể dùng một hoặc nhiều giao diện cùng lúc. Và khi đã sử dụng, thì lớp đó phải định nghĩa các phương thức thuộc giao diện đó giống với ví dụ ở trên là lớp ABC đã phải định nghĩa 2 phương thức là sound() và protect().


    Không giống như lớp trừu tượng PHP , giao diện chỉ có thể chứa tên các phương thức. Ngoài ra nó không thể định nghĩa các phương thức hoặc chứa các thuộc tính bình thường như một lớp trừu tượng được.

    Và dĩ nhiên một lớp vẫn có thể vừa kế thừa và vừa sử dụng giao diện được. Ví dụ sau sẽ thể hiện điều đó:


    <?php
    interfacewater{
    publicfunctionmakeItWet();
    }
    classweather{
    publicfunctionstart(){
    return'Here is some weather';
    }
    }
    classrainextendsweatherimplementswater{
    publicfunctionmakeItWet(){
    return'It is wet';
    }
    }
    $a=newrain();
    echo$a->start();
    echo$a->makeItWet()
    ?>
    Trung tâm đào tạo lập trình PHP Vietpro Education!
     
    Cảm ơn đã xem bài:

    Học lập trình đối tượng PHP tìm hiểu về mô hình trừu tượng PHP

    Đang tải...


Like và Share ủng hộ ITSEOVN