设计模式 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类检查问题 出在哪个部件,然后修复这个部件
build+模式+java_java 设计模式学习笔记三 Builder模式
最新推荐文章于 2022-08-17 12:48:52 发布