public abstract class BaseDAO<T extends BaseDTO> {
public Integer create(T dto) {
}
public Integer update(T dto) {
}
public Integer delete(T dto) {
}
}
public class JobDAO extends BaseDAO<JobDTO> {
public JobDAO(Connection conn) {
super(conn);
}
@Override
public String getDBTableName() {
return "JobTABLE";
}
}
public class BaseDTO {
protected Integer ID;
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
}
public class JobDTO extends BaseDTO {
Integer employerID;
//getter
//setter
}
public class Job_GUI extends javax.swing.JFrame {
//GUI properties
}
私は規約を理解しようとしていますが、データ転送オブジェクトとアクセス オブジェクトで構成される上記のクラス構造にModel, View, Controller
適用したいと考えています。MVC
私が理解できていないのは、私の構造はMVCより上ですか? もしそうなら、モデルは何ですか?私は、DTO自体がModel
. Job_GUI はView
私が既に知っているものですが、Controller
??とは何ですか?
actionPerformed
Job_GUI 自体にコードを直接記述したいのですが、次のスニペットのように db にジョブを作成します。
JobDAO jdao = new JobDAO(conn);
//create object jobDTO to hold all form values to be passed to JobDAO
final JobDTO jobDTO = new JobDTO();
//populating JobDTO with values from form
jobDTO.setEmployerID(id);
jobDTO.setDescription(description.getText());
jobDTO.setTitle(txtTitle.getText());
jdao.create(jobDTO);
ただし、上記はJob_GUI
クラス自体または他の場所にある必要があります。上記のスニペットを挿入するとJob_GUI
、MVC の慣習から離れることになりますか? 上記のスニペットをどこに配置しますか? 混乱は、データベースとのやり取りに,controller
を使用する場合に、私が持っているすべてのクラスからどれがクラスであるかを特定することにあります。DTO
DAO
Design Pattern