PG : Naming Convention เกี่ยวกับ interface และ implements class
Naming Convention เกี่ยวกับ interface และ implements class มีที่นิยมใช้อยู่ 2 แบบนะครับ
1. Naming interface ขึ้นต้นด้วย I (ไอ) และ class ที่ implement interface นั้นก็ไม่มี I นำหน้าเช่น
interface IEmployeeDAO
class EmployeeDAO implements IEmployeeDAO
และ
2. Naming interface แบบปกติ และ class ที่ implement มี ตัวย่อ Impl (ย่อจาก Implements) ต่อท้ายด้านหลัง เช่น
interface EmployeeDAO
class EmployeeDAOImpl implements EmployeeDAO
จากนั้นก็จะมีการแยก package ให้ดูเข้าใจง่าย แยกดีกว่าถ้า code เยอะจะได้ไม่งงเช่น
com.tgs.dao สำหรับ interface และ com.tgs.dao.impl สำหรับ class ที่ใช้ implement interface เหล่านั้น
แต่ก่อนผมใช้แบบที่ 1 ข้อดีคือขึ้นต้นด้วย I ชัดเจนดูง่ายดูทีเดียวรู้เลยว่าเป็น interface แต่ปัจจุบันใช้แบบที่ 2 เพราะคนนิยมมากกว่า และถ้าเราใช้ลักษณะการทำงานแบบ ioc di พวกนี้ใช้ interface เป็นหลัก การสร้าง interface ที่มี I ก็ดูจะไม่จำเป็นเพราะเน้นใช้งานอยู่แล้ว
ที่เขียนสิ่งที่รู้ๆกันอยู่แล้วเพราะอะไร เพราะไปเจอคนเขียน Naming interface ต่อท้ายด้วย impl เช่น interface EmployeeDAOImpl และ สร้าง class EmployeeDAO implements EmployeeDAOImpl ด้วยชื่อปกติ ซึ่งมันสลับกัน ก็เลยเอาเล่าสู่กับฟังอีกสักครั้ง จะทำแบบที่ 3 ก็ได้ไม่ผิดหรอกแค่ข้อตกลงที่เขานิยมใช้กันเอง แต่พอดู code แล้วมันก็ทำให้ผมแค่คิดว่า
“ตอนนั้นคนเขียนกำลังคิดอะไรของเขาอยู่”
