Plain Old Java Objects (POJO)

ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Jim White

Java Developer

ภาพรวมชนิดข้อมูลและการจัดการ Exception

  • บทที่ 1
    • Plain old (หรือ ordinary) Java objects
    • Wrapper classes
    • การใช้ packages
  • บทที่ 2
    • Collections Framework
  • บทที่ 3
    • Exceptions และการจัดการ Exception

Java จัดการกับข้อมูลและปัญหาต่าง ๆ อย่างไร นั่นคือหัวข้อของคอร์สนี้

1 Photo by Mika Baumeister on Unsplash
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Java objects ในฐานะโครงสร้างข้อมูล

  • Java objects ใช้เก็บและจัดระเบียบข้อมูล
    • สร้างจาก class ที่กำหนดเอง
  • เก็บข้อมูลในฟิลด์
    • ทำหน้าที่เหมือน "กระเป๋า" ของข้อมูลในแอปพลิเคชัน
  • เรียกว่า POJOs
    • Plain ordinary Java object
    • หรือ Plain old Java object
  • Java objects แบบเรียบง่ายใช้เก็บและส่งต่อข้อมูล
    • ปฏิบัติตามกฎบางข้อ
    • ไม่มี logic ใด ๆ

Java objects หรือ POJOs ทำหน้าที่เหมือนกระเป๋าเดินทางสำหรับเก็บและส่งข้อมูลในแอปพลิเคชัน

1 Photo by Caroline Selfors on Unsplash
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Getters และ Setters

  • Getters และ Setters เป็น public
    • ฟิลด์เป็น private
  • Getters และ Setters ปกป้องข้อมูลใน POJO
    • ส่งเสริมการ encapsulation ข้อมูล
  • ซ่อนรายละเอียดการทำงานภายในของฟิลด์
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

แนวทางการเขียน POJO class

  • POJO class ควร:
    • เป็น public
    • มี getters/setters แบบ public สำหรับทุกฟิลด์
      • ฟิลด์ควรเป็น private
    • มี default constructor (ไม่รับ argument)

POJO classes ควรปฏิบัติตามกฎเหล่านี้

1 Photo by Anastasiya Badun on Unsplash
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

สิ่งที่ POJO ไม่ควรทำ

  • POJO class ไม่ควร:
    • ผูกติดกับ framework ใด ๆ
    • Extend class อื่น
    • Implement interface ใด ๆ
      • ยกเว้น Serializable ในบางกรณี
    • มี business logic
  • กฎเหล่านี้อาจผ่อนปรนได้บ้างในบางครั้ง
    • พยายามทำให้ POJOs เรียบง่ายไว้

POJO classes ไม่ควรมีลักษณะเหล่านี้

1 Photo by Anastasiya Badun on Unsplash
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Getters

  • ชื่อเมธอด Getter
    • ขึ้นต้นด้วย "get" (Getters ประเภท boolean ขึ้นต้นด้วย "is")
    • ลงท้ายด้วยชื่อฟิลด์
    • ใช้ lower camel case
    • ตัวอย่าง: get + make = getMake
  • ไม่รับ parameter ใด ๆ
  • คืนค่าของฟิลด์
  • Getters สามารถซ่อนรายละเอียดการทำงานของฟิลด์ได้
    private String make;

    public String getMake() {
        return make;
    }
    private short on;

    public boolean isOn() {
      if (on == 0) {
        return false;
      } else {
        return true;
      }
    }
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Setters

  • ชื่อเมธอด Setter
    • ขึ้นต้นด้วย "set" และลงท้ายด้วยชื่อฟิลด์
    • ใช้ lower camel case
    • ตัวอย่าง: set + make = setMake
  • รับ parameter เดียว — ค่าใหม่ของฟิลด์
    • ใช้ this เพื่อแยกฟิลด์ออกจาก parameter
  • ไม่คืนค่า (void)
  • สามารถตรวจสอบความถูกต้องของข้อมูลได้
    private String make;

    public void setMake(String make) {
        this.make = make;
    }
    private int age;

    public void setAge(int age) {
      if ((age >= 0) && (age <= 120)) {
        this.age = age;
      }
    }
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

ตัวอย่าง POJO

  • Class แบบ public
  • ฟิลด์แบบ private
  • Getters/Setters แบบ public
    • Getters คืนค่าของฟิลด์
    • Setters กำหนดค่าให้ฟิลด์
  • Default constructor (ไม่รับ argument)
public class Car {   // POJO class is public
    private String model;  // Fields are private
    private int year;

    // Default no arg constructor

    // Public getters to access POJO data
    public String getModel() {
        return model;
    }
    public int getYear() {
        return year;
    }
    // Public setters to set POJO fields
    public void setModel(String model) {
        this.model = model;
    }
    public void setYear(int year) {
        this.year = year;
    }
}
ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

มาฝึกกันเถอะ!

ชนิดข้อมูลและการจัดการข้อยกเว้นใน Java

Preparing Video For Download...