Java 设计模式的选择-串行执行
我有一个简单的设计问题——我正在寻找实现简单功能的最佳模式。比方说,我将用java创建一条xml消息。此消息由不同逻辑组中的许多字段组成 因此,第一个想法是创建一个类来设置所有字段。我可以使用一种方法(非常长…)或将该方法拆分为多个较小的方法(对于每个逻辑组)。然而,我认为这不是一个好方法,因为这门课会很长,很难坚持 第二个想法是为不同的组创建一个功能接口和一些实现,例如GroupXxxSetter、GroupYyySetter等。我可以创建并保留列表或集合中的所有实例,并为集合中存储的每个对象调用接口中定义的方法。这似乎与“责任链”模式非常相似。然而,这个模式的想法是不同的,所以我不确定在我的案例中使用这个模式是否是一个好主意 我应该在这里使用“责任链”模式吗?或者,也许有更好的 提前谢谢 我应该在这里使用“责任链”模式吗 显然,没有。你没有候选人负责回应请求的概念。所有元素都将进行处理 或者,也许有更好的 您有多种可能性。Java 设计模式的选择-串行执行,java,spring,design-patterns,jaxb,Java,Spring,Design Patterns,Jaxb,我有一个简单的设计问题——我正在寻找实现简单功能的最佳模式。比方说,我将用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模式满足了这一需求,并且可以与呈现的构建器模式结合使用