gpt4 book ai didi

java - 序列设计模式中的流程

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:53 24 4
gpt4 key购买 nike

场景:
我有一些方法可以处理一种工作流程的某些步骤。每个方法在一个对象中做一些事情,并将同一个对象传递给另一个方法。类似的东西:

void MethodA(SomeType obj)
{
// Some Process

MethodB(obj);
}

void MethodB(SomeType obj)
{
// Some Process

MethodC(obj);
}

void MethodC(SomeType obj)
{
// keep going...
}

并发症:
系统在增长,我注意到我需要在系统的一些不同地方调用这个“步骤队列”。但是到其他地方有几个步骤变了,有的不能执行,需要执行新的。通常队列会改变,但步骤不会。

问题
是否有一种设计模式允许我单独构建步骤并仅在需要运行时加入它们?

最佳答案

您可以使用Builder 模式:

public class MyObject {

public static class MyObjectBuilder {
private MyObject obj;
public MyObjectBuilder() {
obj = new MyObject();
}

public MyObjectBuilder methodA() {
// edit something with obj
return this;
}

public MyObjectBuilder methodB() {
// edit something with obj
return this;
}

public MyObjectBuilder methodC() {
// edit something with obj
return this;
}

public MyObject build() {
return obj;
}
}

public static void main(String[] args) {
MyObject a = new MyObjectBuilder()
.methodA()
.methodB()
.methodC().build();
MyObject b = new MyObjectBuilder()
.methodA()
.methodA()
.methodB()
.methodB().build();
MyObject c = new MyObjectBuilder()
.methodC()
.methodB()
.methodA()
.methodC()
.methodB().build();
}
}

关于java - 序列设计模式中的流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com