建造者模式 拼搏现实的明天。 2021-09-24 07:52 357阅读 0赞 * 找商家买电脑: public class Computer { private String brand; private String screan; private String mainboard; private String memory; // getter and setter @Override public String toString() { return "Computer [brand=" + brand + ", screan=" + screan + ", mainboard=" + mainboard + ", memory=" + memory + "]"; } } 只需告诉他,你要 lenove 的电脑,他会帮你搞定。商家从厂商拿货,你从商家拿货: class BuyComputer { public static void main(String[] args) { Director seller = new Director(new LenovoBuilder()); Computer computer = seller.build(); System.out.println(computer); } } 所有厂商都是对电脑组装: public abstract class ComputerBuilder { abstract void buildBrand(); abstract void buildScrean(); abstract void buildMainboard(); abstract void buildMemory(); abstract Computer build(); } 其中 lenovo 的厂商这样制造: public class LenovoBuilder extends ComputerBuilder { private Computer computer = new Computer(); @Override public Computer build() { return this.computer; } @Override public void buildBrand() { this.computer.setBrand("lenovo"); } @Override public void buildScrean() { this.computer.setScrean("lenovo screan"); } @Override public void buildMainboard() { this.computer.setMainboard("lenovo mainboard"); } @Override public void buildMemory() { this.computer.setMemory("lenovo memory"); } } 商家具体做的事情就是联系厂商,及组装什么配件: public class Director { private ComputerBuilder builder; public Director(ComputerBuilder builder) { this.builder = builder; } public Computer build() { this.builder.buildBrand(); this.builder.buildScrean(); this.builder.buildMainboard(); this.builder.buildMemory(); return this.builder.build(); } } -------------------- * 自己从 JD 买电脑配件: public static void main(String[] args) { JD jd = new Computer.JD(); Computer computer = jd.setBrand("lenovo").setMainboard("lenovo mainboard") .setMemory("suming memory").setScrean("aiguo screan") .build(); System.out.println(computer); } 具体实现: public class Computer { private String brand; private String screan; private String mainboard; private String memory; private Computer() {}; // 对外屏蔽,对内开放 private Computer(JD jd) { this.brand = jd.brand; this.screan = jd.screan; this.mainboard = jd.mainboard; this.memory = jd.memory; } public static final class JD { private String brand; private String screan; private String mainboard; private String memory; public Computer build() { return new Computer(this); } public JD setBrand(String brand) { this.brand = brand; return this; } public JD setScrean(String screan) { this.screan = screan; return this; } public JD setMainboard(String mainboard) { this.mainboard = mainboard; return this; } public JD setMemory(String memory) { this.memory = memory; return this; } } @Override public String toString() { return "Computer [brand=" + brand + ", screan=" + screan + ", mainboard=" + mainboard + ", memory=" + memory + "]"; } }
相关 建造者模式 定义 将一个复杂对象的构造与它的表示分离,是的同样的构建过程可以创建不同的表示。 类型:创建型 建造者模式与工厂模式有些类似: 建造者更注重:方法的调用顺序,关心创 「爱情、让人受尽委屈。」/ 2022年02月15日 19:25/ 0 赞/ 267 阅读
相关 建造者模式 [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 1、产品类 package com.hhdys r囧r小猫/ 2022年01月14日 22:37/ 0 赞/ 234 阅读
相关 建造者模式 建造者模式,又称为生成器模式,是一种较为复杂、使用频率不高的创建型模式。它为客户端返回的不是一个简单的产品,而是有多个部件组成的复杂产品。以手机为例,建造者模式返回的是一个完整 谁践踏了优雅/ 2021年12月10日 18:29/ 0 赞/ 240 阅读
相关 建造者模式 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 柔光的暖阳◎/ 2021年09月29日 16:04/ 0 赞/ 314 阅读
相关 建造者模式 找商家买电脑: public class Computer { private String brand; private String s 拼搏现实的明天。/ 2021年09月24日 07:52/ 0 赞/ 358 阅读
相关 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Buil 向右看齐/ 2021年09月17日 01:24/ 0 赞/ 354 阅读
相关 建造者模式 4.建造者模式 ![70][] class Customer { static void Main(string[] a 女爷i/ 2021年09月16日 23:52/ 0 赞/ 356 阅读
相关 建造者模式 建造者模式 1. 简介 2. 建造者模式介绍 2.1 定义 2.2 建造者模式的优点 2.3 建造者模式的缺点 ﹏ヽ暗。殇╰゛Y/ 2021年08月30日 22:18/ 0 赞/ 487 阅读
相关 建造者模式 一 点睛 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naG 怼烎@/ 2021年07月24日 18:01/ 0 赞/ 410 阅读
相关 建造者模式 造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Bu... 小灰灰/ 2020年06月13日 05:36/ 0 赞/ 735 阅读
还没有评论,来说两句吧...