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

网站建站方案百度账号中心

网站建站方案,百度账号中心,购物网站cms,软装设计公司排行一、什么是建造者模式? 将复杂对象的构建与表示进行分离,使得统一的构建过程,可以创建出不同的对象表现模式 就是将复杂对象里面的成员变量,设置不同的值,使得生成出来的对象拥有不同的属性值; 二、特点…

一、什么是建造者模式?

将复杂对象的构建与表示进行分离,使得统一的构建过程,可以创建出不同的对象表现模式

就是将复杂对象里面的成员变量,设置不同的值,使得生成出来的对象拥有不同的属性值;

二、特点

要解决的问题:复杂对象使用不同的构建过程,产生拥有不同对象属性的对象,调用者只需要设定不同的属性值,不需要了解属性值之间是怎么构建出来对象的;

抽象建造者:抽象创建者接口

实际建造者:抽象创建者的不同实现

产品:复杂产品

指挥者:用来与调用者交互,实现通过抽象创建者生产出产品的流程

三、角色和实现

实现方式一:

  • 抽象建造者
public interface CarBuilderInterface {Object builderWheel();Object builderFrame();Object builderCoreComponent();}
  • 具体建造者
public class CarBuilderInterfaceImpl implements CarBuilderInterface {@Overridepublic Object builderWheel() {System.out.println("生产了一个轮子");return "返回轮子";}@Overridepublic Object builderFrame() {System.out.println("生产了一个车架");return "返回车架";}@Overridepublic Object builderCoreComponent() {System.out.println("生产了核心组件");return "返回核心组件";}
}
  • 具体的产品
public class CarProduct {private String wheel;private String frame;private String coreComponent;public String getWheel() {return wheel;}public void setWheel(String wheel) {this.wheel = wheel;}public String getFrame() {return frame;}public void setFrame(String frame) {this.frame = frame;}public String getCoreComponent() {return coreComponent;}public void setCoreComponent(String coreComponent) {this.coreComponent = coreComponent;}
}
  • 指挥者Director:实例化建造者,通过建造者组织具体的产品
public class CarBuilderDirector {private CarBuilderInterface carBuilderInterface;public CarBuilderDirector(CarBuilderInterface carBuilderInterface) {this.carBuilderInterface = carBuilderInterface;}public CarProduct builderCarProduct() {CarProduct carProduct = new CarProduct();carProduct.setWheel(carBuilderInterface.builderWheel().toString());carProduct.setFrame(carBuilderInterface.builderFrame().toString());carProduct.setCoreComponent(carBuilderInterface.builderCoreComponent().toString());return carProduct;}
}
  • 当需要使用建造者模式进行对象构建时:
public class Client {public static void main(String[] args) {CarBuilderInterface carBuilderInterface = new CarBuilderInterfaceImpl();CarBuilderDirector carBuilderDirector = new CarBuilderDirector(carBuilderInterface);CarProduct carProduct = carBuilderDirector.builderCarProduct();System.out.println("生成了一个车:" + carProduct.getWheel() + "," + carProduct.getFrame() + "," + carProduct.getCoreComponent());}
}

实现方式二:使用静态内部类的方式实现


/*** 通过内部类的形式实现建造者模式,并且可以实现链式调用*/
public class CarBuilderExample {private String wheel;private String frame;private String coreComponent;private CarBuilderExample(String wheel, String frame, String coreComponent) {this.wheel = wheel;this.frame = frame;this.coreComponent = coreComponent;}public static class CarBuilderExampleBuilder {private String wheel;private String frame;private String coreComponent;public static CarBuilderExampleBuilder builder() {return new CarBuilderExampleBuilder();}public CarBuilderExampleBuilder wheel(String wheel) {this.wheel = wheel;return this;}public CarBuilderExampleBuilder frame(String frame) {this.frame = frame;return this;}public CarBuilderExampleBuilder coreComponent(String coreComponent) {this.coreComponent = coreComponent;return this;}public CarBuilderExample builderExample() {return new CarBuilderExample(wheel, frame, coreComponent);}}public static void main(String[] args) {CarBuilderExampleBuilder builder = CarBuilderExampleBuilder.builder();CarBuilderExample carBuilderExample = builder.wheel("轮子").frame("车架+").coreComponent("核心部件+").builderExample();System.out.println(carBuilderExample.coreComponent + carBuilderExample.frame + carBuilderExample.wheel);}}
lombok包里面的@Builder也是通过这种模式实现的

四、与工厂方法和抽象工厂之间的区别

工厂是指创建一个类型的多种实现

抽象工厂是指创建一系列类型的多种实现

http://www.hengruixuexiao.com/news/51299.html

相关文章:

  • 手机网站建设沈阳bt种子磁力搜索
  • 网站建设利益分析台州网站建设优化
  • 孟州网站软文推广代理平台
  • 网站建设需求怎么写360收录查询
  • 上海交通建设委员会网站关键字搜索
  • 做视频网站 视频放在哪里网站广告调词软件
  • 沈阳优化网站推广渠道怎么写
  • asp网站域名授权link友情买卖
  • 做网站的公司如何运营公司网站推广方案
  • 手机商店app下载seo优化按天扣费
  • wordpress免费自定义模板装修教程百度如何优化
  • 杭州设计网站最好的公司世界足球排名
  • 中山网站建设价位百度app客服人工电话
  • 国外知名平面设计网站老客外链
  • 兰溪做网站系统优化方法
  • 范县网站建设专业seo培训学校
  • 重庆铜梁网站建设建网站用什么工具
  • 17网站一起做网店怎么拿货培训总结
  • 网站建设与规划总结怎么写宁波seo网络推广推荐
  • 网站备案 中国最新疫情最新消息
  • 上海市政府网站建设具体桌子seo关键词
  • 网站建设及推广方案私域流量和裂变营销
  • 自动优化网站建设咨询快速优化排名公司推荐
  • 辽宁网站网站建设快速优化工具
  • php网站怎么做post订单优化关键词可以选择哪个工具
  • 学生做家教网站百度app下载官方免费下载安装
  • 佛山信息技术网站开发线上销售平台如何推广
  • JAVA做论坛网站的源代码微信推广怎么弄
  • 网站建设捌金手指花总十三软件排名优化
  • 旅游网站建设分析 需求南宁seo营销推广