Java 设计模式的选择-串行执行

Java 设计模式的选择-串行执行,java,spring,design-patterns,jaxb,Java,Spring,Design Patterns,Jaxb,我有一个简单的设计问题——我正在寻找实现简单功能的最佳模式。比方说,我将用java创建一条xml消息。此消息由不同逻辑组中的许多字段组成 因此,第一个想法是创建一个类来设置所有字段。我可以使用一种方法(非常长…)或将该方法拆分为多个较小的方法(对于每个逻辑组)。然而,我认为这不是一个好方法,因为这门课会很长,很难坚持 第二个想法是为不同的组创建一个功能接口和一些实现,例如GroupXxxSetter、GroupYyySetter等。我可以创建并保留列表或集合中的所有实例,并为集合中存储的每个对象

我有一个简单的设计问题——我正在寻找实现简单功能的最佳模式。比方说,我将用java创建一条xml消息。此消息由不同逻辑组中的许多字段组成

因此,第一个想法是创建一个类来设置所有字段。我可以使用一种方法(非常长…)或将该方法拆分为多个较小的方法(对于每个逻辑组)。然而,我认为这不是一个好方法,因为这门课会很长,很难坚持

第二个想法是为不同的组创建一个功能接口和一些实现,例如GroupXxxSetter、GroupYyySetter等。我可以创建并保留列表或集合中的所有实例,并为集合中存储的每个对象调用接口中定义的方法。这似乎与“责任链”模式非常相似。然而,这个模式的想法是不同的,所以我不确定在我的案例中使用这个模式是否是一个好主意

我应该在这里使用“责任链”模式吗?或者,也许有更好的

提前谢谢

我应该在这里使用“责任链”模式吗

显然,没有。你没有候选人负责回应请求的概念。所有元素都将进行处理

或者,也许有更好的

您有多种可能性。
你的背景还没有完全确定。因此很难提出一个而不是另一个。

我可能会建议您使用构建器模式实现(Java有效参考,而不是GOF)。

对于每个逻辑组,您可以有一个特定的类。
您还将拥有一个由逻辑组实例组成的复合类。

您可以为每个逻辑组类和复合类使用Builder模式,而不是提供防止不变性并使规则验证变得繁琐的公共构造函数或setter,您可以使用相同类型的构建器模式,从先前创建的逻辑组实例构建最终消息。

您可以这样创建实例:

OneLogicGroup oneLogicGroup = OneLogicGroup.builder().fieldXXX(...).fieldYYY(...).build();

AnotherLogicGroup anotherLogicGroup = AnotherLogicGroup .builder().fieldXXX(...).fieldYYY(...).build();

MyMessage myMessage = MyMessage.builder().oneLogicGroup(oneLogicGroup).anotherLogicGroup(anotherLogicGroup).build().
我可以创建并保留列表或集合中的所有实例,并调用 为存储在接口中的每个对象在接口中定义的方法 收藏

这似乎是指结构性问题。
它与对象的创建没有直接关系。这与如何共享创建的对象有很大关系
flyweight模式满足了这一需求,并且可以与呈现的构建器模式结合使用