build+模式+java_java 设计模式学习笔记三 Builder模式

设计模式  builder 将一个复杂的对象构建与他的表示分离,使同样的构建过程可以创建不同的表示 把创建和部件的创建分别开来 示例代码:  /**  * 部件实体  *   * @time 下午11:03:52  * @author retacn yue  * @Email zhenhuayue@sina.com  */ public interface Part {} /**  * 成品  *   * @time 下午11:05:14  * @author retacn yue  * @Email zhenhuayue@sina.com  */ public class Product { public String name = "xxxx"; } /**  * 创建各个部件和复杂对象的接口  *   * @time 下午10:56:16  * @author retacn yue  * @Email zhenhuayue@sina.com  */ public interface Builder { // 创建部件A void buildPartA(); // 创建部件B void buildPartB(); // 创建部件C void buildPartC(); // 返回最后组装成品结果 Product getResult(); // 设置成品结果 void setResult(String str); } /**  * 创建各部件的具体实现  *   * @time 下午11:02:59  * @author retacn yue  * @Email zhenhuayue@sina.com  */ public class CreateBuilder implements Builder { Part partA, partB, partC; String str; /************* 完成各部件的组装 *********************/ @Override public void buildPartA() { System.out.println("组装部件a"); } @Override public void buildPartB() { System.out.println("组装部件b"); } @Override public void buildPartC() { System.out.println("组装部件c"); } /***************************************/ /** * 返回组装成品结果 */ @Override public Product getResult() { Product product = new Product(); product.name = str; return product; } /** * 设置成品结果F */ @Override public void setResult(String str) { this.str = str; } } /**  * 创建复杂对象  *   * @time 下午10:59:41  * @author retacn yue  * @Email zhenhuayue@sina.com  */ public class Director { Builder builder; /** * 构造器 *  * @param builder */ public Director(Builder builder) { this.builder = builder; } // 组装成品的过程 public void construct() { builder.buildPartA(); builder.buildPartB(); builder.buildPartC(); } } /**  * 创建复杂对象  *   * @time 下午10:59:41  * @author retacn yue  * @Email zhenhuayue@sina.com  */ public class Director { Builder builder; /** * 构造器 *  * @param builder */ public Director(Builder builder) { this.builder = builder; } // 组装成品的过程 public void construct() { builder.buildPartA(); builder.buildPartB(); builder.buildPartC(); //设置组装结果 builder.setResult("success"); } } /**  * 测试调用builder模式  *   * @time 下午11:08:15  * @author retacn yue  * @Email zhenhuayue@sina.com  */ public class TestBuilder { public class TestBuilder {   public static void main(String[] args) { // 创建各部件的具体实现 CreateBuilder builder = new CreateBuilder(); // 创建复杂对象 Director director = new Director(builder); // 组装成品 director.construct(); // 取得成品结果 Product product = builder.getResult(); System.out.println("组装成品" + product.name); } } } 应用场景:”池“使资源得到循环利用,如上面实例,可以修改director类检查问题 出在哪个部件,然后修复这个部件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值