public class Email { public string To { get; set; } public string From { get; set; } public string Subject { get; set; } public string Body { get; set; } } public class EmailBuilder { private readonly Email _email; public EmailBuilder() { _email = new Email(); } public EmailBuilder To(string address) { _email.To = address; return this; } public EmailBuilder From(string address) { _email.From = address; return this; } public EmailBuilder Subject(string title) { _email.Subject = title; return this; } public EmailBuilder Body(string content) { _email.Body = content; return this; } public Email Build() { return _email; } }
用法示例:
var emailBuilder = new EmailBuilder(); var email = emailBuilder .To("email1@email.com") .From("email2@email.com") .Subject("Email subject") .Body("Email content") .Build();
23.4 流利的构建器API 如果您需要构建ApplicationContext层级结构(具有父/子关系的多上下文),或者如果您只想使用“流利的”构建器API,则可以使用SpringApplicationBuilder。 SpringApplicationBuilder允许您将多个方法调用链接在一起,并包含允许您创建层级结构的parent和child方法。 例如: new SpringApplic
我需要在没有静态嵌套类的情况下实现Builder模式。如果我有遗传,最好的方法是什么?让我们想象一下我有下面的课。 是创建一个Builder类来负责设置PassengerCar和Truck的值更好,还是我们需要另外三个类,CarBuilder,PassengerCarBuilder extends CarBuilder和TruckBuilder extends CarBuilder?
由于无法解析最后一个链接调用,未定义方法,因此此调用将不会编译。所以这种方式要求所有调用都以特定的顺序链接起来,这是非常不切实际的,特别是对于一个深度层次结构树。 现在,在我寻找答案的过程中,我遇到了一个Java Builder类的子类,它建议使用奇怪的递归泛型模式。但是,由于我的层次结构不包含一个抽象类,所以这个解决方案对我不起作用。但是这种方法依赖于抽象和多态性来发挥作用,这就是为什么我不相信
本文向大家介绍设计模式构建器模式/Java 实现,包括了设计模式构建器模式/Java 实现的使用技巧和注意事项,需要的朋友参考一下 示例 通过Builder模式,您可以以易于阅读的方式创建具有许多可选变量的类的实例。 考虑以下代码: 如果所有参数都是必需的,那么一切都很好。如果有更多的变量和/或其中一些是可选的怎么办?您不想使用必需参数和可选参数的每种可能的组合来创建大量的构造函数,因为它变得难以
本文向大家介绍c#桥接模式(bridge结构模式)用法实例,包括了c#桥接模式(bridge结构模式)用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了c#桥接模式(bridge结构模式)用法。分享给大家供大家参考。具体分析如下: 一般来说,Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象(Tank的型号)和实现(不同的平台)可以沿着格子的维度来变