POJOs的Java设计思想

POJOs的Java设计思想,java,design-patterns,domain-driven-design,Java,Design Patterns,Domain Driven Design,我试图理解java POJO的最佳设计概念。如果我有一辆汽车这样的物体: 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

我试图理解java POJO的最佳设计概念。如果我有一辆
汽车
这样的物体:

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;
    }
}
这个carpojo应该有更多的方法,比如
getgasmilence
gettirepression
,还是应该将这些方法放在接受
car
对象的实用程序/接口中


这是一个基于当前代码库的设计问题,使用域驱动设计(DDD),实体对象包含
getgasmilence
等方法。一个pojo/实体应该只包含getter/setter代码,还是也包含其他方法是一种好的做法?

根据发明这个术语的人的说法,pojo旨在包含业务逻辑

这个词是丽贝卡·帕森斯、乔什·麦肯齐和我在2000年9月的一次会议上准备演讲时创造的。在演讲中,我们指出了将业务逻辑编码为常规java对象而不是使用实体bean的许多好处。我们想知道为什么人们如此反对在他们的系统中使用常规对象,并得出结论,这是因为简单对象缺少一个别致的名称。所以我们给了他们一个,它非常流行


出现混淆的原因是POJO经常与Javabean混淆。请参阅:

POJO只包含字段和它们的getter/setter。任何处理
Car
对象的逻辑都应该被提取出来以划分类别。这是一个观点问题,也是一个激烈的争论,请尽你最大的判断。我的POJO中有很多方便的方法。。。打我吧