Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DAO与数据传输对象_Java_Design Patterns_Dao - Fatal编程技术网

Java DAO与数据传输对象

Java DAO与数据传输对象,java,design-patterns,dao,Java,Design Patterns,Dao,因此,在数据传输对象中应该只有setter和getter。。 但是,如何处理从数据传输对象插入和删除对象 public class dto{ setters and getters... .. .. public void delete(){ CustomreDao.delete(this.ID); } } 这会不会违背道模式本身 提前感谢。数据传输对象只是用于在层和层之间传输数据的数据容器。它主要包含属性,您甚至可以使用公共属性,而不使用getter和setter。数据传输对象不包含任

因此,在数据传输对象中应该只有setter和getter。。 但是,如何处理从数据传输对象插入和删除对象

public class dto{

setters and getters...
..
..

public void delete(){
CustomreDao.delete(this.ID);
}

}
这会不会违背道模式本身


提前感谢。

数据传输对象只是用于在层和层之间传输数据的数据容器。它主要包含属性,您甚至可以使用公共属性,而不使用getter和setter。数据传输对象不包含任何业务逻辑


DTO除了存储和检索自己的数据(访问器和变异器)之外没有任何行为。

数据传输对象只是用于在层和层之间传输数据的数据容器。它主要包含属性,您甚至可以在不使用getter和setter的情况下使用公共属性。数据传输对象不包含任何业务逻辑

DTO除了存储和检索自己的数据(访问器和变异器)之外没有任何行为。

问问自己:“更新DAO的删除方法有多难?”如果您有很多DTO,并且突然需要更改DAO,那么这就是您刚刚为自己创建的大量工作

将DTO与DAO的连接责任留给其他地方,在那里您可以从一个点控制交互。

问问自己:“更新DAO的删除方法有多难?”如果您有很多DTO,并且突然需要更改DAO,那么这就是您刚刚为自己创建的大量工作


将DTO与DAO的连接责任留给其他地方,在那里您可以从一个点控制交互。

我认为答案是肯定的-这与DAO模式背道而驰

数据访问对象模式是关于封装对对象存储的访问

您甚至不能使用数据传输对象

您所说的是——在业务对象本身中使用方法是我更喜欢的活动记录模式

您甚至可以使用这两种方法—例如,使用CustomerDao作为通过数据库实现数据访问的方法,但使用ActiveRecord实现方便的界面:

customer.save();
anotherCustomer = Customer.find(id);
这些方法可以在内部使用CustomerDao


我相信DTO被不同的复杂框架使用,如果你可以避免使用它-你可以直接使用,而不需要额外的DTO层。

我认为答案是肯定的-这与DAO模式背道而驰

数据访问对象模式是关于封装对对象存储的访问

您甚至不能使用数据传输对象

您所说的是——在业务对象本身中使用方法是我更喜欢的活动记录模式

您甚至可以使用这两种方法—例如,使用CustomerDao作为通过数据库实现数据访问的方法,但使用ActiveRecord实现方便的界面:

customer.save();
anotherCustomer = Customer.find(id);
这些方法可以在内部使用CustomerDao


我相信DTO被不同的复杂框架使用,如果你能避免使用它,你可以直接使用,而不需要额外的DTO层。

这是OO语言中的设计原则。根据我们的观点,每个班级都应该只有一个职责。DTO类的职责是为传输目的存储数据。它不应该有任何像您在示例中所说的行为。

这是OO语言中的设计原则。根据我们的观点,每个班级都应该只有一个职责。DTO类的职责是为传输目的存储数据。它不应该有任何像您在示例中所说的行为。

我认为答案在于您的问题数据传输对象中应该只有setter和getters@AdamSiemion谢谢回复!但为什么会这样呢?这样做会有什么错?数据传输对象(DTO)只能用于在层之间传输数据。当您需要执行数据库操作时,有数据访问对象(DAO)。所有与数据库相关的操作都应该只在DAO类中执行。我认为答案是在您的问题数据传输对象中应该只有setter和getters@AdamSiemion谢谢回复!但为什么会这样呢?这样做会有什么错?数据传输对象(DTO)只能用于在层之间传输数据。当您需要执行数据库操作时,有数据访问对象(DAO)。所有与数据库相关的操作只能在DAO类中执行。