สำนักวิทยบริการและเทคโนโลยีสารสนเทศ (สวส.)

Office of Academic Resources and Information Technology

PHP OOP Interface Class

Interface Class เป็นรูปแบบการเขียนอีกแบบหนึ่งในการเขียน OOP ถ้าจะถามว่า Interface คืออะไร ก็คงจะยกตัวอย่างการเปรียบเทียบ interface เหมือนพิมพ์เขียว คือการออกแบบงานไว้เพื่อให้คนอื่นมาทำต่อตามรูปแบบที่ได้วางเอาไว้

   การเขียน Interface นั้นจะเขียนลักษณะของคลาสซึ่งมีเมธอดที่ไม่มีอะไรเลย มีเพียงแต่ชื่อเมธอดเท่านั้น  โดยสามารถเขียน interface ได้ตามรูปแบบดังนี้  
 

 
  1. <?php
  2. interface  MyPets {
  3.       function HasLegs($AmountOfLegs) {}    
  4.     function MakeSound($voice) {}
  5.     function  ShowInfo() {}
  6. }
  7. ?>


    ส่วนการนำ interface ไปใช้งาน ต้องทำการ implements  interface class เสียก่อน เช่นตัวอย่างโค้ดด้านล่าง  จาก interface ด้านบน เราเห็น MyPets  interface มีเมธอดทั้งหมด 3 เมธอด เราจะต้องทำการ implements โครงสร้างทั้งหมดมาไว้ในคลาสใหม่ของเรา  เปรียบเหมือนต้องทำการสร้างบ้านตามพิมพ์เขียวที่ได้ออกแบบไว้ทั้งหมด จะละอันใดอันหนึ่งไม่ได้    ดังตัวอย่างการเขียนโค้ดการ implements class ด้านล่าง
 

 
  1. class  MyDog implements MyPets {
  2.   function HasLegs($AmountOfLegs) {
  3.    // โค้ดอื่น ๆ
  4.   }
  5.  function MakeSound($voice) {
  6.    // โค้ดอื่น ๆ
  7.  }
  8.  function  ShowInfo() {
  9.    // โค้ดอื่น ๆ
  10.  }
  11.  
  12.  function myNewMethod() {
  13.   // โค้ดอื่น ๆ
  14.  }
  15. }


    การเขียนแบบ interface จะมีประโยชน์มากในการนำไปใช้ของ SA ระบบต่าง ๆ เพื่อให้โปรแกรมเมอร์พัฒนาต่ออีกที โดย SA ได้ออกแบบและรับฟีเจอร์หรือความต้องการจากลูกค้ามาแล้ว จะออกแบบเพื่อให้โปรแกรมเมอร์เขียนได้อย่างครบถ้วน ไม่ว่าจะเป็นการออกแบบจากพวก UML IDE ต่าง ๆ ก็ได้ เช่น โปรแกรม SparxVisual ParadigmAltova, Rational Rose เป็นต้น

    โดยบางโปรแกรมจะสามารถเจนโค้ดที่เราได้ออกแบบไว้ได้อีกด้วย แต่สำหรับ php เท่าทีเคยใช้ก็มีโปรแกรม Rational Rose สามารถทำได้ แต่โปรแกรมอื่น ๆ ไม่ได้ลอง ถ้าสนใจก็ไปลองกันได้ครับ

จาก : 
http://www.worldphp.com/