2017-05-11 5 views
1

Java POJO에 대한 최상의 디자인 개념을 이해하려고합니다. Car 객체에 소요POJO의 Java 디자인 개념

public class Car { 
    private String color; 
    private String make; 
    private String model; 
    private int year; 

    public Car(String color, String make, String model, int year) { 
     this.color = color; 
     this.make = make; 
     this.model = model; 
     this.year = year; 
    } 

    public String getColor() { 
     return color; 
    } 

    public void setColor(String color) { 
     this.color = color; 
    } 

    public String getMake() { 
     return make; 
    } 

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

    public String getModel() { 
     return model; 
    } 

    public void setModel(String model) { 
     this.model = model; 
    } 

    public int getYear() { 
     return year; 
    } 

    public void setYear(int year) { 
     this.year = year; 
    } 
} 

이 자동차 POJO가 getGasMileage 또는 getTirePressure 또는 그 방법은 유틸리티의 내부에 넣어해야합니다 같은 것이 더 메소드가 필요합니다/인터페이스 : I는 car과 같이 객체가 있다면?

getGasMileage과 같은 메서드가 포함 된 Entity 개체와 함께 DDD (Domain Driven Design)를 사용하는 현재 코드 기반을 기반으로하는 디자인 질문입니다. pojo/엔티티에는 getter/setter 코드 만 포함되어야합니까? 아니면 다른 방법도 포함하는 것이 좋습니다.

+0

POJO에는 필드와 getter/setter 만 들어 있습니다. 'Car' 객체를 처리하는 모든 논리는 클래스들을 분리하기 위해 추출되어야합니다. –

+0

이것은 의견의 열띤 논쟁이며 최선의 판단을 사용하십시오. –

+0

내 POJOs는 편리한 방법으로 가득 차 있습니다 ... 저와의 전투. ;) –

답변

3

POJO는 용어를 발명 한 Martin Fowler에 따라 비즈니스 논리를 포함하기위한 것입니다.

레베카 파슨스, 조쉬 맥켄지와 나는 우리가이 아닌 일반 자바 객체로 인코딩 비즈니스 로직의 많은 이점을 지적했다 이야기에서 2000 년 9 월 회의에서 토론을 준비하는 동안이 용어는 화폐로 주조되었다 엔티티 빈을 사용합니다. 우리는 왜 사람들이 그들의 시스템에서 정규 물체를 사용하는 것에 반대하는지 궁금했고 단순한 물체가 멋진 이름이 없었기 때문에 그것이라고 결론을 내 렸습니다. 그래서 우리는 그들에게 하나를 주었고, 그것은 아주 잘 잡혔습니다.

POJO가 종종 Java Bean과 융합되기 때문에 혼란이 발생합니다. 참조 : What is the difference between a JavaBean and a POJO?