介绍:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
实际业务场景:
举个例子,现在需要实现一个消息处理器(MsgManager),生产者直接往消息管理器丢消息,而消息管理器需要提供一些消费消息的方式,即处理消息的方式。可以是异步多线程的无顺序处理消息,也可以是有顺序的先进先出处理消息。可以是一个一个的处理消息也可以是批量一次性处理大量消息。可以设置消息处理后的回调也可以是无返回的处理消息,等等等的很多种情况。如果我们根据各个搭配条件来编写构造器来满足各种消息处理的创建那对客户端程序来说不是一个很好的方式,同时我们编码的清晰程度也下降了,这时候就可以使用建造者模式。各个建造方式的组合都只是设置MsgManagerBuilder的一个属性,直到调用最后的build()方法的时候才返回一个我们需要的MsgManager。
代码实现:
适用场景:当一个类需要你提供很多构造方法来满足你不同的构造方式,同时他们又有很多种组合的时候。可以尝试一下采用建造者模式。