建造者模式 r囧r小猫 2022-01-14 22:37 221阅读 0赞 [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 1、产品类 package com.hhdys.product; import java.util.ArrayList; import java.util.List; /** * Created by zhangkai on 16/5/31. */ public class Product { public Product(String name) { this.name = name; } private String name; private List<String> parts=new ArrayList<String>(); public void add(String part){ parts.add(part); } public void show(){ System.out.println(name+"产品开始组装===="); for(String part:parts){ System.out.println("产品组成部分:"+part); } } } 2、抽象建造者类 package com.hhdys.product; /** * Created by zhangkai on 16/5/31. */ public abstract class Builder { public abstract void builderPartA(); public abstract void builderPartB(); public abstract Product getResult(); } 3、A产品建造类 package com.hhdys.product; /** * Created by zhangkai on 16/5/31. */ public class ConcreteBuilderA extends Builder { Product product=new Product("A"); @Override public void builderPartA() { product.add("A部件"); } @Override public void builderPartB() { product.add("B部件"); } @Override public Product getResult() { return product; } } 4、B产品建造类: package com.hhdys.product; /** * Created by zhangkai on 16/5/31. */ public class ConcreteBuilderB extends Builder { Product product=new Product("B"); @Override public void builderPartA() { product.add("X部件"); } @Override public void builderPartB() { product.add("Y部件"); } @Override public Product getResult() { return product; } } 5、指挥者类: package com.hhdys.product; /** * Created by zhangkai on 16/5/31. */ public class Director { public void construct(Builder builder){ builder.builderPartA(); builder.builderPartB(); } } 6、主程序: package com.hhdys.main; import com.hhdys.product.ConcreteBuilderA; import com.hhdys.product.ConcreteBuilderB; import com.hhdys.product.Director; import com.hhdys.product.Product; /** * Created by zhangkai on 16/5/31. */ public class ProductMain { public static void main(String[] args){ Director d=new Director(); ConcreteBuilderA a=new ConcreteBuilderA(); d.construct(a); Product result = a.getResult(); result.show(); ConcreteBuilderB b=new ConcreteBuilderB(); d.construct(b); Product result2 = b.getResult(); result2.show(); } } 7、运行结果: A产品开始组装==== 产品组成部分:A部件 产品组成部分:B部件 B产品开始组装==== 产品组成部分:X部件 产品组成部分:Y部件 8:总结: 解耦的同时,保证了不会丢失任何步骤。 转载于:https://my.oschina.net/hhdys412/blog/684767 [2019_Python_]: https://my.oschina.net/u/2663968/blog/3061697 [hot3.png]: /images/20220114/a13fa67907c0494ea26cb11058ce348f.png
相关 建造者模式 定义 将一个复杂对象的构造与它的表示分离,是的同样的构建过程可以创建不同的表示。 类型:创建型 建造者模式与工厂模式有些类似: 建造者更注重:方法的调用顺序,关心创 「爱情、让人受尽委屈。」/ 2022年02月15日 19:25/ 0 赞/ 256 阅读
相关 建造者模式 [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 1、产品类 package com.hhdys r囧r小猫/ 2022年01月14日 22:37/ 0 赞/ 222 阅读
相关 建造者模式 建造者模式,又称为生成器模式,是一种较为复杂、使用频率不高的创建型模式。它为客户端返回的不是一个简单的产品,而是有多个部件组成的复杂产品。以手机为例,建造者模式返回的是一个完整 谁践踏了优雅/ 2021年12月10日 18:29/ 0 赞/ 227 阅读
相关 建造者模式 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 柔光的暖阳◎/ 2021年09月29日 16:04/ 0 赞/ 299 阅读
相关 建造者模式 找商家买电脑: public class Computer { private String brand; private String s 拼搏现实的明天。/ 2021年09月24日 07:52/ 0 赞/ 349 阅读
相关 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Buil 向右看齐/ 2021年09月17日 01:24/ 0 赞/ 343 阅读
相关 建造者模式 4.建造者模式 ![70][] class Customer { static void Main(string[] a 女爷i/ 2021年09月16日 23:52/ 0 赞/ 348 阅读
相关 建造者模式 建造者模式 1. 简介 2. 建造者模式介绍 2.1 定义 2.2 建造者模式的优点 2.3 建造者模式的缺点 ﹏ヽ暗。殇╰゛Y/ 2021年08月30日 22:18/ 0 赞/ 475 阅读
相关 建造者模式 一 点睛 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naG 怼烎@/ 2021年07月24日 18:01/ 0 赞/ 401 阅读
相关 建造者模式 造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Bu... 小灰灰/ 2020年06月13日 05:36/ 0 赞/ 723 阅读
还没有评论,来说两句吧...