The factory class pattern provides the pattern of creating a single class, while the builder pattern is to centralize the various products to manage, to create composite objects, so-called composite objects that refer to a class that has different properties, in fact the builder pattern is the combination of the previous abstract factory pattern and the last Test. Let's look at the code:
As before, a sender interface, two implementation classes MailSender and Smssender. Finally, the Builder class is as follows:
Public classBuilder {Privatelist<sender> list =NewArraylist<sender>(); Public voidProducemailsender (intcount) { for(inti=0; i<count; i++) {List.add (NewMailSender ()); } } Public voidProducesmssender (intcount) { for(inti=0; i<count; i++) {List.add (NewSmssender ()); } } }
Test:
Public class Test { publicstaticvoid main (string[] args) { new Builder (); Builder.producemailsender (ten); } }
From this point of view, the builder pattern integrates many functions into a class that can create more complex things. So the difference with the engineering model is that the factory model is concerned with creating a single product, while the builder pattern is concerned with creating a conforming object, multiple parts. Therefore, the choice of the factory model or the builder model depends on the actual situation.
Java Java Design pattern (4): Builder mode (builder)