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 规范对象设计模式的构建_Java_Design Patterns_Software Design - Fatal编程技术网

Java 规范对象设计模式的构建

Java 规范对象设计模式的构建,java,design-patterns,software-design,Java,Design Patterns,Software Design,我有两个java类 工作 工作流程 public String id; public String name; public String Status; public Date nextDate(); public String type; 我想构建一个方法,用于构建具有作业特征的工作流类型对象 public Workflow buildWorkflow(Job job){ Workflow test = new Workflow(); test.

我有两个java类

工作

工作流程

    public String id;
    public String name;
    public String Status;
    public Date nextDate();
    public String type;
我想构建一个方法,用于构建具有作业特征的工作流类型对象

public Workflow buildWorkflow(Job job){

Workflow test = new Workflow();

test.setId(job.getId());
test.setName(job.getName())
test.setStatus(job.getStatus());

test.setNetDate(new Date());
test.setType("java");

return test;
}
如果对象发生变化,如何标准化对象的构造

工作标准

    public String id;
    public String name;
    public String status;
我应该完全重写这个方法:

public Workflow buildWorkflow(JobStandard jobstandard){

Workflow test = new Workflow();

test.setId(jobstandard.getId());
test.setName(jobstandard.getName())
test.setStatus(jobstandard.getStatus());

test.setNetDate(new Date());
test.setType("java");

return test;
}

提示?

为什么不让您的
工作流
有一个
数组列表
参数?或者反过来说。让你的工作有一个
ArrayList
这个
buildWorkflow
方法可以依赖于一个抽象而不是一个具体的类
Job
JobStandard
都可以实现此抽象。您是否有理由不希望
Workflow
子类化
Job
?它看起来像一个
工作流
是一个
作业
,还有两个字段。如果
作业
发生更改,您希望
工作流
发生更改。为什么要重写该方法?唯一需要更改的是buildWorkflow输入的类名,无需更改您为输入参数指定的名称。为什么不让您的
Workflow
具有
ArrayList
参数?或者反过来说。让你的工作有一个
ArrayList
这个
buildWorkflow
方法可以依赖于一个抽象而不是一个具体的类
Job
JobStandard
都可以实现此抽象。您是否有理由不希望
Workflow
子类化
Job
?它看起来像一个
工作流
是一个
作业
,还有两个字段。如果
作业
发生更改,您希望
工作流
发生更改。为什么要重写该方法?唯一需要更改的是buildWorkflow输入的类名,无需更改您为输入参数指定的名称。
public Workflow buildWorkflow(JobStandard jobstandard){

Workflow test = new Workflow();

test.setId(jobstandard.getId());
test.setName(jobstandard.getName())
test.setStatus(jobstandard.getStatus());

test.setNetDate(new Date());
test.setType("java");

return test;
}