본문 바로가기

JAVA

[Java] POJO 와 Beans 의 차이점

 

 

POJO Classes

  • POJO(Plain Old Java Object) 는 자바 객채의 표준(ordinay)이며, Java Language Specification 에 의한 어떤 특정한 엄격한(restriction) 경계가 존재하지 않습니다.
  • POJO 는 가독성재사용성을 중요시하게 사용됩니다.
  • POJO 는 restriction 이 적은 만큼 쓰기도 쉽고 읽기도 쉽기때문에 많이 사용되어 왔습니다.
  • POJO 의 3가지 규칙이 존재합니다.
    1. Exend prespcified classes
    2. Implement prespecified interfaes
    3. Contain prespecified annotations
    public class Animal {
        String dog;
        public String cat;
        private int legs;

        public Animal(String dog, String cat, int legs) {
            this.dog = dog;
            this.cat = cat;
            this.legs = legs;
        }

        public getDog() {
            return this.dog;
        }
    }

 

Beans Classes

  • Beans 는 POJO 와 달리 엄격한(restriction) 규칙을 가지고 있습니다.
  • 모든 JavaBeans는 POJOs 이지만 POJOs 는 JavaBeans 가 아닙니다.
  • Fields 는 접근제어자가 private 이어야만 합니다.
  • Fields 는 getter 와 setter 를 가져야 합니다.
  • constructor 는 argument 를 가져서는 안됩니다.
  • Fileds 는 getter 와 setter 로만 접근되어야만 합니다.
    public class Animal {
        private int legs;

        Animal() {

        }

        public setLegs(int legs) {
            this.legs = legs;
        }

        public getLegs() {
            return legs;
        }
    }

 

 

POJO vs Java Bean

POJO JAVA BEAN
Java laguage 에 의한 특별한 restrictions 이 없습니다. POJO 보다 restrictions 합니다.
Fields 에 대한 통제를 제공하지 않습니다. Fields에 대한 통제를 가집니다.
SErializable 에 대한 interface 를 구현할 수 있습니다. Serializable 에 대한 interface 를 구현해야만 합니다.
Fields 는 이름으로 접근할 수 있습니다. Fields 는 getter 와 setter 로만 접근할 수 있습니다.
Fields 에 대한 접근제어자 규칙이 자유롭습니다. Fields 는 접근제어자를 private 로만 가질 수 있습니다.
constructor 에 argument를 가질 수 있습니다. constructor 에 argument를 가질 수 없습니다.
member와 field에 대해 restriction 한 접근 규칙을 정하고 싶지 않을 때 사용됩니다. member와 restriction 한 접근 규칙을 정하고자 할 때 사용됩니다.

참고 : POJO vs Java Beans

'JAVA' 카테고리의 다른 글

[JAVA] Reflection 을 이용하여 Method 호출하기  (0) 2020.01.08
JAVA의 정석 - Thread  (0) 2019.01.13
JAVA의 정석 - Generics  (0) 2019.01.13
JAVA의 정석 - 열거형(enums)  (0) 2019.01.13