- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计模式之Builder
//创建部件A 比如创建汽车车轮 void buildPartA ; //创建部件B 比如创建汽车方向盘 void buildPartB ; //创建部件C 比如创建汽车发动机 void buildPartC ; //返回最后组装成品结果 返回最后装配好的汽车 //成品的组装过程不在这里进行,而是转移到下面的Director类中进行. //从而实现了解耦过程和部件 Product getResult ; 用Director构建最后的复杂对象,而在上面Builder接口中封装的是如何创建一个个部件 复杂对象是由这些部件组成的 ,也就是说Director的内容是如何将部件最后组装成成品:
public class Director private Builder builder; public Director Builder builder this.builder builder; // 将部件partA partB partC最后组成复杂对象 //这里是将车轮 方向盘和发动机组装成汽车的过程 public void construct builder.buildPartA ; builder.buildPartB ; builder.buildPartC ; Builder的具体实现ConcreteBuilder:通过具体完成接口Builder来构建或装配产品的部件;定义并明确它所要创建的是什么具体东西;提供一个可以重新获取产品的接口:
public class ConcreteBuilder implements Builder Part partA, partB, partC; public void buildPartA //这里是具体如何构建partA的代码 ; public void buildPartB //这里是具体如何构建partB的代码 ; public void buildPartC //这里是具体如何构建partB的代码 ; public Product getResult //返回最后组装成品结果 ; 复杂对象:产品Product:
public interface Product 复杂对象的部件:
public interface Part 我们看看如何调用Builder模式:ConcreteBuilder builder new ConcreteBuilder ;Director director new Director builder ; director.construct ; Product product builder.getResult ;
Builder模式的应用在Java实际使用中,我们经常用到池 Pool 的概念,当资源提供者无法提供足够的资源,并且这些资源需要被很多用户反复共享时,就需要使用池.
池实际是一段内存,当池中有一些复杂的资源的断肢 比如数据库的连接池,也许有时一个连接会中断 ,如果循环再利用这些断肢,将提高内存使用效率,提高池的性能.修改Builder模式中Director类使之能诊断断肢断在哪个部件上,再修复这个部件.
文档评论(0)