当前位置: 首页 > news >正文

北京seo公司网站帮公司做网站的外包公司

北京seo公司网站,帮公司做网站的外包公司,wordpress主题搜索引擎,网站做调查需要考虑的内容构建者模式(Builder) 定义 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示 使用场景 主要角色 产品 Product建造者接口 Builder具体的建造者 Concrete Builder指挥者 Director:组织构建过程 示例代码 Data p…

构建者模式(Builder)

定义

将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示

使用场景

主要角色

  1. 产品 Product
  2. 建造者接口 Builder
  3. 具体的建造者 Concrete Builder
  4. 指挥者 Director:组织构建过程

示例代码

@Data
public class Computer {private String cpu;//必须private String ram;//必须private int usbCount;//可选private String keyboard;//可选private String display;//可选public Computer(String cpu, String ram) {this.cpu = cpu;this.ram = ram;}}
public abstract class ComputerBuilder {public abstract void setUsbCount();public abstract void setKeyboard();public abstract void setDisplay();public abstract Computer build();
}
public class LenovoComputerBuilder extends ComputerBuilder {private Computer computer;public LenovoComputerBuilder(String cpu, String ram) {computer=new Computer(cpu,ram);}@Overridepublic void setUsbCount() {computer.setUsbCount(4);}@Overridepublic void setKeyboard() {computer.setKeyboard("联想键盘");}@Overridepublic void setDisplay() {computer.setDisplay("联想显示器");}@Overridepublic Computer build() {return computer;}
}
public class MacComputerBuilder extends ComputerBuilder {private Computer computer;public MacComputerBuilder(String cpu, String ram) {computer = new Computer(cpu, ram);}@Overridepublic void setUsbCount() {computer.setUsbCount(2);}@Overridepublic void setKeyboard() {computer.setKeyboard("苹果键盘");}@Overridepublic void setDisplay() {computer.setDisplay("苹果显示器");}@Overridepublic Computer build() {return computer;}
}
public class ComputerDirector {public void makeComputer(ComputerBuilder builder){builder.setUsbCount();builder.setDisplay();builder.setKeyboard();}
}
public class Client {public static void main(String[] args) {ComputerDirector director = new ComputerDirector();ComputerBuilder builder = new MacComputerBuilder("I5处理器", "三星125");director.makeComputer(builder);Computer macComputer = builder.build();System.out.println("mac computer:" + macComputer.toString());ComputerBuilder lenovoBuilder = new LenovoComputerBuilder("I7处理器", "海力士222");director.makeComputer(lenovoBuilder);Computer lenovoComputer = lenovoBuilder.build();System.out.println("lenovo computer:" + lenovoComputer.toString());}
}
mac computer:Computer(cpu=I5处理器, ram=三星125, usbCount=2, keyboard=苹果键盘, display=苹果显示器)
lenovo computer:Computer(cpu=I7处理器, ram=海力士222, usbCount=4, keyboard=联想键盘, display=联想显示器)
http://www.yayakq.cn/news/960676/

相关文章:

  • 深圳网站建设迈自己做的网站背景怎么设置
  • 赣州市建设局建管科网站如何推广短视频
  • 淄博市网站开发福州网站设计要多少钱
  • 百度网站快速收录个人简历范文100字
  • 建一个论坛网站要多少钱怎样自己制作公司网站上传
  • 长春火车站出站要求制作的图片
  • 建设网站需要公司吗做视频网站公司要怎么做的
  • 公司电商网站建设推广网站有效的方法
  • 江门公司网站建设黄岛网站建设哪家专业
  • 网站开发三层结构网站建设方案视频教程
  • 网站制作与建设教程下载网络系统管理与维护形考任务2
  • 做网站是那个语言写的哈尔滨住建局网站首页
  • 开发网站怎样注册公司甘肃城乡建设局网站
  • 具体c2c网站建设实例下载app免费下载软件
  • 丹东制作网站公司网站设计开发的难点
  • 宜昌网站seo免费wordpress主机
  • 东莞网站建设 汇卓html网页素材
  • 怎么在百度建立公司网站武义建设局网站首页
  • 五台县建设局网站浙江建站
  • 什么网站可以找人做设计师郑州官方网
  • 四川省建设厅安全员报名网站网站免费创建
  • 网站在线服务哪里有做胎儿dna亲子鉴定
  • 如何提高网站响应速度个人博客网页完整代码
  • 网站开发项目简介聊城市城乡建设部网站查询
  • 合肥网站公司哪家好商城网站的建设方案
  • 做网站最专业营销信息
  • 都江堰城乡建设局网站可信网站认证必须做
  • 做网站用什么版本系统软件项目和网站建设的区别
  • 建设工程安全备案网站wordpress 获取当前路径
  • 婚纱网站设计seo服务外包价格